JavaScript - 相等操作符 == 和 ===

2019-10-06  本文已影响0人  ElricTang

一. 相等操作符 ==

例子 结果 原因
null == null true JavaScript规范, null 不会被转换
null == undefined true JavaScript规定了 null == undefined
undefined == undefined true JavaScript规定
null == 0 false null 不会被转换
undefined == 0 false undefined不会被转换
NaN == NaN false NaN与任何值都不等(包括自身)
'NaN' == NaN false NaN与任何值都不等
[] == [] false 两边都是引用类型,比较引用的是否为同一个
[] == ![] true 先计算!得到false,根据规则布尔值转换为0,左边Number([])结果也为0。强制类型转换中空数组转换为数值为0,转换为布尔值为true
'' == [] true 空字符串和空数组转换为数值都为0
'' == '' true 空字符串转换为0

二. 全等操作符 ===

例子 结果 原因
null === null true 完全相等
undefined === undefined true 完全相等
null === undefined false null和undefined类型不同
NaN === NaN false NaN 与任何值都不等
NaN === 'NaN' false NaN 与任何值都不等,而且两边类型都不同
{} === {} false 对象要比较是否为同一引用
[] === [] false 引用类型要比较是否为同一引用
true === true true 完全相等
false === false true 完全相等
上一篇 下一篇

猜你喜欢

热点阅读