Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,在什么情况下a===b,但使用a或b会得到不同的结果?_Javascript - Fatal编程技术网

在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
仅用于属性的内部。