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款。