一、 运算中存在的隐式类型转换(基本类型)
简述:如果字符串不是纯数字就会转化为NAN
二、 运算中存在的隐式类型转换(引用类型)
注解:引用类型转布尔全是true。比如空数组,只要是对象就是引用类型,所以[]为true。
1.对象转数字时,调用valueOf();
2.对象转字符串时,调用toString();
0 == []; // true, 0 == [].valueOf(); -> 0 == 0;
'0' == []; // false, '0' == [].toString(); -> '0' == '';
2 == ['2']; // true, 2 == ['2'].valueOf(); -> 2 == '2' -> 2 == 2;
'2' == [2]; // true, '2' == [2].toString(); -> '2' =='2';
[] == ![]; //true, [].valueOf() == !Boolean([]) -> 0 == false -> 0 == 0;
对象转成数字时,调用valueOf(),在这之前先调用的是toString();所以我猜valueOf方法是这样的。So上面的例子 0 == []要改成下面更合理。无论如何,[]最后是转成0的。
网友评论