美文网首页js
js 运算时数据类型转化, == 和 ===

js 运算时数据类型转化, == 和 ===

作者: 书虫和泰迪熊 | 来源:发表于2020-07-13 18:30 被阅读0次

    只有加法运算会把运算子转换成字符串,其他运算都自动转化成数值
    大小比较时会先转化成数字类型再进行比较
    一元运算符也会把运算子转成数值

    'a' + 1   // 'a1'
    'a' - 1    // NaN
    true +5 //6
    false + 5 //5
    1>2>3   // false
    3>2>1   // true
    +'1'+1   // 2
    +'s'+2   // NaN
    's' + null  //'snull'
    's' + undefined // 'sundefined'
    1 + true + undefined + 's' // 1+1+NaN+'s'=2+NaN+'s'=NaN+'s'=NaNs
    

    运算符 == 和 === 比较
    ==是抽象相等运算符,而===是严格相等运算符。==运算符是在进行必要的类型转换后,再比较。===运算符不会进行类型转换,所以如果两个值不是相同的类型,会直接返回false。
    使用==时,可能发生一些特别的事情,例如:

    1 == '1'; // true
    1 == [1]; // true
    1 == true; // true
    0 == ''; // true
    0 == '0'; // true
    0 == false; // true
    new Number(2) == 2  //true
    new Number(2) === 2 // false   左边是Number类型本质是对象Object,右边是number 类型是基本类型
    

    [] == ![] // true
    {} == !{} // false
    https://blog.csdn.net/magic_xiang/article/details/83686224

    相关文章

      网友评论

        本文标题:js 运算时数据类型转化, == 和 ===

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