JavaScript基础----隐式转换

不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除、等于、还有小于、大于等。js隐式转换,可以说是一个很大的坑了,下面就来侃一侃js隐式转换的规律。

1. ==隐式转换

如图,js在隐式转换(==)的时候,会按图示进行转换:

 关于==隐式转换的规则,可以概括如下几点:

        1. 字符串和数字比较时,字符串转数字;

        2. 数字为布尔比较时,布尔转数字;

        3. 字符串和布尔比较时,两者转数字;

        4. 对象和布尔比较时,两者转数字;

        5. 对象和数值比较时,对象转数字;

举个例子:

[1,2,3] == '1,2,3' //true  [1,2,3]转化为'1,2,3',故结果为true;

'0' == true;  //false  '0'转换成数字0,true转换成数字1,故结果为false

特殊情况: 

        1. undefined==null;

        2. 只有undefined、null、NaN、0、‘’会被转换为false,其余都为true;

        3. NaN和任何值都不相等, 包括NaN本身;

        4. null和undefined在进行比较的时候,不会进行类型转换。

        即:0 == null                         //false; 

               0 == undefined               //false;

               false == null                    //false;

               false == undefined         //false;

               true == null                     //false;

               true == undefined           //false;

               '' == null                          //false;

               '' == undefined                //false;

2. 算数运算

转换规则:

                   1. 字符串加数字(或数字加字符串),数字就会转成字符串。

                   2. 数字减字符串(或字符串减数字,或字符串减字符串),字符串转成数字。如果字符串不是纯数字就会转成NaN

                   3. 乘、除、大于、小于跟减的转换也是一样。

举个例子:

console.log(10 +'20')     //1020

console.log(10 - '20')    //-10 number
console.log(10 - 'one')   //NaN
console.log(10 - '101a')  //NaN
console.log(10 * '20')    //200 number
console.log('10' * '20')  //200 number
console.log(20 / '10')    //2 number
console.log('20' / '10')  //2 number
console.log('20' / 'one') //NaN

 参考链接:https://www.cnblogs.com/chenmeng0818/p/5954215.html

                   https://blog.csdn.net/sinat_29454619/article/details/74075216

 

 

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值