您的位置:首页 > Web前端 > JavaScript

js中数据的隐式转换

2017-08-23 08:22 148 查看
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 = 20 – 5;
var num2 = "20" – "5";      //字符串本身不能减,我的名字减你的名字有什么意思
var num3 = "20a" - "5";     //NaN
var num4 = "20" - "5a";     //NaN


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

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

例子:

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


在+运算,其它变量只要碰到字符串就跟碰见僵尸一样,也会变成字符串。但在关系运算中,数字也成了僵尸了,只要字符串和数字比较,字符串会先转成数字再比较,这也是一处隐式转换

最后一条”2a”<3,由于2a不能合理的转成数字,于是就是转成了NaN,这个NaN和任何类型的值做比较,都是fasle。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: