js中数据的隐式转换

来源:互联网 发布:qq for ubuntu 下载 编辑:程序博客网 时间:2024/06/05 00:19

JavaScript属于弱类型的语言,数据类型转换有两种:隐式转换和显示转换。
隐式转换:程序在运行时进行的自动转换就叫隐式转换。

1、“+”的隐式转换
例子:

var num1=1,num2=2;var str="js";var b1=true,b2=false;console.log(str+num1);      //"js1"console.log(str+b1);        //"jstrue"console.log(str+num1+num2); //js12;console.log(num1+num2+str); //3js;

注释为输出结果,由例子可以看出,只要有字符串参与,“+”运算会把其他数据类型变成字符串;如果没有字符串,都转为数字计算,boolean里的两个值,true转成1,false转成0。

2、“-”的隐式转换
例子:

var num1 = 205;var num2 = "20""5";      //字符串本身不能减,我的名字减你的名字有什么意思var num3 = "20a" - "5";     //NaNvar num4 = "20" - "5a";     //NaN

由例子可以看出,任何数据类型和减号作运算,都会隐式转为number类型,如果不能自动转换为数字,则会返回NaN。

3、“<”,”>”的隐式转换
例子:

console.log(23 < 3);            //falseconsole.log("23"<"3");          //trueconsole.log("23"<3);            //falseconsole.log("2a"<3);            //false;

在+运算,其它变量只要碰到字符串就跟碰见僵尸一样,也会变成字符串。但在关系运算中,数字也成了僵尸了,只要字符串和数字比较,字符串会先转成数字再比较,这也是一处隐式转换
最后一条”2a”<3,由于2a不能合理的转成数字,于是就是转成了NaN,这个NaN和任何类型的值做比较,都是fasle。

原创粉丝点击