首页IT科技与凤行(== 与 ===)

与凤行(== 与 ===)

时间2025-09-19 13:20:40分类IT科技浏览6123
导读:尽量不要用== ==的比较过程...

尽量不要用==

==的比较过程

以 [] == ![] 为例

左边 [] 是个数组 右边 ![] 是个表达式                 ,表示对数组取反                         ,需要对数组进行布尔判定         ,数组是对象所以是true                 ,取反之后为false                         ,所以就相当于比较

== 两边数据类型不一样会将数据转变成原始类型         ,原始类型有 null                  、 undefined                          、数字         、字符串                 、布尔值        ,如果数据转化成字符串就会优先调用toString()                         ,如果数据转化成数字就会优先调用valueOf()

所以实际上表达式又变成了

都是原始类型了                 ,但是两边的类型不一样 == 又得把两边转成数字 转成数字是 0 ,false转成数字也是 0 就变成了 0和0的比较

所以说 == 会让看上去明显不相等的两个表达式 结果为 true         ,这显然是不合理的                 。而===是严格相等就不会出现这种情况                         。

二者的区别

== 是相等 ===是严格相等

== 在比较时                         ,如果两边的类型相等则进行 === 比较                 ,不相等则会先转换成相同类型再进行 === 比较,而===比较时                         ,只要类型不一样就会返回 false

=== 比较:

1)只要类型不同就一定不相等

2)如果两个值都是数字并且为同一个值                         ,那么相等,如果至少一个是NaN                 ,则不相等(判定一个值是否为NaN                         ,只能通过isNaN()来判断)

3)如果两个值都是字符串且每个位置的字符都一样         ,那么相等                 ,否则不相等

4)如果两个值都是true 或者 false 那么相等

5)如果两个值都是引用类型并且引用同一个对象                         ,那么相等

6)如果两个值都是null或者undefined         ,那么相等

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
平十法的算式题(10道Python面试题)