亲宝软件园·资讯

展开

js数据类型转换

Moon65 人气:1
JavaScript 中,变量可以赋予任何类型的值。但是运算符对数据类型是有要求的,如果运算符发现,运算子的类型与预期不符,就会自动转换类型。数据类型除了可以自动转换以外,还可以手动强制转换。
 
数据类型的转换
  • 强制转换
  • 隐式转换
typeof 判断数据类型
typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof 操作符会返回如下字符串。
1 var type=typeof "aaa";
2 console.log(type);

一:强制转换


 

1、 强制转换为 - 字符串
1).String() String(数据)
1 var num=10;
2 var a=num.toString(2);
3 console.log(a);
4 console.log(typeof num);
5 console.log(typeof a);
2).toString()  .toString(进制)
可以将任意数字转换为任意进制
toString 可以将任意数字转换为任意进制,进制必须大于等于2,小于等于36;
最小是2进制,最大是36进制,因为数字(10)字母(26)共36个;
1 var color=255;
2 var c=color.toString(16);
3 console.log(c); // ff
3).toFixed()

3).toFixed()   .toFixed(小数点后几位);

将数值转换为字符串,并按照小数点四舍五入,保留位数,但是有精度误差。
1 var num=10.35;
2 var a=num.toFixed(1);3 console.log(a); //10.3
1 var num=0.5‐0.2;
2 console.log(num==0.3);
3 console.log(0.3‐0.2==0.1);

 

2、强制转换为 - 数值
Number()
Number(数据)
NaN 非数值 类型是number
1) 纯字符---》 NaN
1 var str="你好";
2 var num=Number(str);
3 console.log(num); //NaN
2) 纯数字---》数字
1 var str="你好";
2 var num=Number(str);
3 console.log(num);
3) 部分数字,部分字符---》NaN
1 var str="12";
2 var num=Number(str);
3 console.log(num);
4) 布尔值---》数字 true--->1 false--->0
1 var str="1a";
2 var num=Number(str);
3 console.log(num);
5) undefined---》NaN
1 var b=false;
2 var num=Number(b);
3 console.log(num);
6) null---》0
1 var a;
2 var num=Number(a); 3 console.log(num);
 
3、强制转换为 - 整数
1)parseInt(str)
a:纯字符---》 NaN
1 var str="你好";
2 var num=parseInt(str);
3 console.log(num); //NaN
b:纯数字---》数字
1 var str="20";
2 var num=parseInt(str);
3 console.log(str); // num :20
c:部分数字,部分字符---》 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
1 var str1="16a";//部分数值部分字符 按照10进制转换16
2 var num=parseInt(str1);
3 console.log(num1);
4 var str2="a16";//部分数值部分字符 NaN
5 var num=parseInt(str2);
6 console.log(num2);

d:布尔值---》NaN

1 var str=false;
2 var num=parseInt(str);
3 console.log(num);
e:undefined---》NaN
1 var str;
2 var num=parseInt(str);
3 console.log(num);
f:null---》NaN
1 var str=null;
2 var num=parseInt(str); 3 console.log(num);

 

2)parseInt(字符,进制)
可以将指定进制方式字符串转换为10进制,是toString()逆转换
例1:parseInt(str,2); 将2进制字符串转换为10进制数值
1 var str="1010";
2 var num=parseInt(str,2);
3 // num :10

例2:parseInt(str,16); 将16进制字符串转换为10进制数值

1 var str="FF";
2 var num=parseInt(str,16);
3 console.log(num);
4 // #FF0000

 

4、强制转换为 - 小数
parseFloat() 可以保留小数位
强转小数和parseInt类似
1 var str1=25.541;
2 var str2=25.541;
3 var num1=parseInt(str1);
4 var num2=parseFloat(str2);
5 console.log(num1); //25
6 console.log(num2); //25.541

 

5、强制转换为 - 布尔值
boolen()
1) 转换为false有:
"" 0 false,undefined,null,NaN,转换为布尔值都会变成false
 
a:“”引号中间没有空格
1 var str1="";
2 var b=Boolean(str1);
3 console.log(b); //false

b: 0

1 var str2=0;
2 var b=Boolean(str2);
3 console.log(b); //false
c: false
1 var str3=false;
2 var b=Boolean(str3);
3 console.log(b); //false
d: underfind
1 var str4;
2 var b=Boolean(str4);
3 console.log(b); //false
e: null
1 var str5=null;
2 var b=Boolean(str5);
3 console.log(b); //false
f:NaN
1 var str6=NaN;
2 var b=Boolean(str6);
3 console.log(b); //false

 

2) 除此之外转换都是:true
1 var str="aaa";
2 var b=Boolean(str);
3 console.log(b); //str

 

 
二:隐式转换

  • j类型不同,弱类型语言会自动将数据转换为对应的类型
  • 当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换
  • 隐式转换遵从与 String() Number() Boolean()
例:加法运算:都转换为字符串运算
1 var a=6;
2 var b="a";
3 var c=true;
4 console.log(a+b); //6a
5 //这里将a隐式转换为字符串,并且相加首尾相连6 console.log(a+c); // 7

 

例:减法运算:都转换为数值
1 var a=6;
2 var b="a";
3 console.log(a‐b);
4 //减法会隐式转换将a和b都转换为数值 NaN 6‐NaN

  

加载全部内容

相关教程
猜你喜欢
用户评论