首页 > 技术文章 > javascript 中==与===

duduSunny 2014-11-28 17:31 原文

1.==相等运算符

1.1如果操作数具有相同的类型,则判断其等同性,如果两个数的值相等,则返回true(相等),否则返回 false (不相等)

1.2如果两个操作数类型不同,则按如下规则:

    • null与undefined相等
    • 其中一个是数字,另一个是字符串,则将字符串转为数字,在做比较
    • 其中一个是true,先转化成1(false则转化为0) 在做比较
    • 如果一个值是对象,另一个是数字或字符串,则将对象转化为原始值(通过toString()或valueOf()方法)
    • 其他情况则直接返回false

2.===等同运算符

2.1如果操作数类型不同,则不进行值得判断,直接返回false

2.2如果操作数类型相同则按如下规则:

    • 都是数字时,如果值相同则两者等同(例外:NaN与其本身不相等),否则不等同
    • 都是字符串,如果串的值相等则等同,否则不等同
    • 都是布尔值,且其值均为true/false,则等同,否则不等同
    • 如果两个操作数引用同一对象,则两者完全等同,否则不等同
    • 如果两个操作数均为null/undefined 则等同,否则不等同

 

推荐阅读