最近看到一个有意思的图片,包含了鲜为人知的秘密。。。
先看看这张有意思的图片。
图左应该讲的是基督教中的三位一体。翻译成中文如下。
当然这不是我们的重点,我们的重点在右边这个图。讲的是js中相等操作。
==
是js中的宽松相等(loose equals)。===
是严格相等(strict equals)。
这两个都是用来判断两个值是否相等。区别在于。
==
允许在比较中进行强制类型转换,而===
不允许。
在转换不同数据类型时,遵循以下几个规则:
- 如果有一个操作数是布尔值(
true
和false
),会将false
转为数值0
,true
转为数值1
。 - 如果一个操作符是字符串,另一个是数值。则将字符串转成数值(
ToNumber
)。 - 如果一个操作符是对象,另一个不是。则使用
ToPrimitive
将对象转成基本值( 先调用对象的valueOf()
方法得