js中数据的隐式转换

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";     //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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值