为什么"0“==”在JavaScript中为false

为什么

7.12.4 中的第一个子句是:

如果类型(X)与类型(Y)相同,则

a.返回执行严格等式比较x === y.的结果。

7.12.5 全文如下:

如果

(X)与Type(y)不同,则返回false。如果(X)类型为Number或BigInt,则返回

回来!类型(X)::等于(x,y)。

返回!SameValueNonNumeric(x,y).

.

由于"0"和""的类型都是字符串,所以既不应用大小写#1,也不应用大小写#2,因此我们转到7.2.12

类型(X)不是数字或BigInt.

Assert:类型(X)与类型(Y)相同。如果类型(X)未定义,则返回。如果类型(X)为空,则返回。如果类型(X)为空,则返回真。如果类型(X)为字符串,则返回。

如果x和y是完全相同的代码序列(相同长度和对应索引中的相同代码单元),则返回true;否则返回false。如果类型(X)是布尔值,则返回a。如果x和y都是真或均为false,则返回true;否则,返回false。如果类型(X)是符号,则返回a。如果x和y都是符号值,则返回true;否则,返回false。如果x和y都是相同的对象值,则返回true。否则,返回false.

很容易看出第5种情况适用于以下情况:

如果类型(X)是字符串,则

如果x和y是完全相同的代码单元序列(相同的长度和相应索引的相同代码单元),则返回true;否则,返回false。。

还应该很容易看到,"0"和""并不是完全相同的代码单元序列,因为它们在相应的索引中既没有相同的长度,也没有相同的代码单元。

因此,结果是false,按照7.2.12的第二种选择,第5条,a款。

相关推荐

关于钱的经典说说(精选104句)
365体育怎么打不开网址

关于钱的经典说说(精选104句)

📅 02-04 👁️ 7593
2026年世界杯
365bet手机

2026年世界杯

📅 09-26 👁️ 6860
俄语拜拜怎么说
365bet亚洲版官网

俄语拜拜怎么说

📅 07-26 👁️ 9383