美文网首页饥人谷技术博客
javascript中的隐式转换

javascript中的隐式转换

作者: 蜻蜓之鱼 | 来源:发表于2016-07-16 18:10 被阅读27次

    一、 运算中存在的隐式类型转换(基本类型)


    简述:如果字符串不是纯数字就会转化为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的。

    相关文章

      网友评论

        本文标题:javascript中的隐式转换

        本文链接:https://www.haomeiwen.com/subject/pesujttx.html