请参阅以下比较:
("a" == "a")
true
(/a/ == /a/)
false
为什么我使用以下表达式得到不同的结果?
修改
现在我只使用==
并仍然得到相同的结果。
答案 0 :(得分:6)
文字/a/
不是字符串,它是正则表达式对象。没有两个对象彼此===
。
答案 1 :(得分:4)
undefined
,null
,Numbers
,Strings
文字和Booleans
是javascript中的值类型。
因此,它们将与值进行比较,而不是RegExp
(或任何其他对象),这是一个对象,其中比较是基于参考。因此"a" == "a"
将返回true
,因为值 相同,但/a/ == /a/
将返回{{1}因为引用不同。