不同数据类型的隐形转换

2021-03-10  本文已影响0人  转移到CSDN名字丹丹的小跟班

1数字和字符串、布尔类型、数组进行比较时,字符串(或布尔类型、或数组)先转换为数字(Number),再进行比较;

1 == '1'  // true
1 == [1]  // true
1 == true  // true

使用 if(num) 和 if(num == true) 结果不一样。前者使用Boolean()转换Num, 后者使用Number转换true。

  1. 字符串和布尔类型比较,看完下面的代码我疯了。如果一定要给一个解释,那么一定是进行比较的两个数据同时经过Number()的洗礼后再进行比较。数组和布尔类型的比较也如此。
'1' == true  //true
'2' == true // false
'0' == false  //true
  1. undefined 除了和null进行非全等比较返回true,其它均返回false。null 除了和 undefined进行非全等比较返回true,其它均返回false。

  2. 数组(或对象)和字符串进行比较时,数组(或对象)会转换成字符串再进行比较

上一篇下一篇

猜你喜欢

热点阅读