JavaScript(5) - 相等操作符(==和===)

==比较符

不同类型的值用相等操作符比较后的结果如下表:

类型(x)类型(y)结果
undefinednulltrue
nullundefinedtrue
数字字符串x == toNumber(y)
字符串数字toNumber(x) == y
布尔值任何类型toNumber(x) == y
任何类型布尔值x == toNumber(y)
字符串或数字对象x == toPrimitive(y)
对象字符串或数字toPrimitive(x) == y

如果x和y是相同类型,JavaScript会比较他们的值或者对象值。其他没有列在上述表格中的情况都会返回false。
toNumber和toPrimitive方法都是内部的。

toNumber方法对不同类型返回的结果如下:

数值类型结果
undefinedNaN
null0
布尔值true是1,false是0
字符串将字符串解析成数字。如果字符串中包含字母,返回NaN;如果是数字字符组成的,转换成数字。
对象Number(toPrimitive(obj))

toPrimitive方法对不同类型返回的结果如下:

数值类型结果
对象如果对象的valueOf方法的结果是原始值,返回原始值;如果对象的toString方法返回原始值,就返回这个值;其他返回错误

===比较符

如果比较的两个值类型不同,比较的结果就是false;如果比较的两个值类型相同,则如下表:

类型结果
数字x、y的数值相同(但不是NaN)true
字符串x、y是相同的字符串true
布尔值x、y同为ture或falsetrue
对象x、y引用的同一个对象true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值