在JavaScript中,在什么情况下a===b,但使用a或b会得到不同的结果?
如果在JavaScript中,在什么情况下a===b,但使用a或b会得到不同的结果?,javascript,Javascript,如果a===b为true,则使用a或b的任何操作都应给出完全相同的结果 但是我确实看到了一个例外:0==-0但是1/0给出了无限和1/-0给出了-Infinity JavaScript中是否有其他情况会发生这种情况?否。根据(EcmaScript§11.9.6)的规定,这是两个不同值产生true的唯一例外 然而,相反的情况也存在类似的陷阱:NaN是一个例外,使用完全相同的值调用算法会产生false,因为有符号的零和NaN是唯一的值(通过注释),而NaN==NaN是false,符号零似乎是唯一的实
a===b
为true
,则使用a
或b
的任何操作都应给出完全相同的结果
但是我确实看到了一个例外:0==-0
但是1/0
给出了无限
和1/-0
给出了-Infinity
JavaScript中是否有其他情况会发生这种情况?否。根据(EcmaScript§11.9.6)的规定,这是两个不同值产生true
的唯一例外
然而,相反的情况也存在类似的陷阱:
NaN
是一个例外,使用完全相同的值调用算法会产生false
,因为有符号的零和NaN是唯一的值(通过注释),而NaN==NaN
是false
,符号零似乎是唯一的实例。“SameValue()”与=
或=
有何关系?在那个文档上,它说:“如果x是NaN,y是NaN,则返回true。”但是,当我在Chrome的控制台上执行NaN==NaN时,它会说false。然后,NaN===NaN
也为false。那么如何在JavaScript中看到SameValue(NaN,NaN)
返回true
?那么SameValue(0,-0)
与0==-0
有什么关系呢@動靜能量: 哎呀,我把那个链接指错了。谢谢你的提醒SameValue
仅用于属性的内部。