首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECMA-262 ===算法解释

ECMA-262 ===算法解释
EN

Stack Overflow用户
提问于 2011-11-04 16:49:26
回答 2查看 70关注 0票数 0

我试图理解===运算符在JavaScript中的精确算法。它被定义为类似于

比较x === y,其中x和y是值,产生真或假。这样的比较如下:

如果(X)类型(X)与类型( y )不同,则返回false。如果类型(X)未定义,则返回true。如果类型(X)为空,则返回真。如果类型(X)为数字,则返回真。如果类型(X)为数字,则返回假。<>H 212<代码>H 113如果y为NaN,则返回false。<代码>H 214<代码>H 115如果x与y相同,则返回真。H 216H 117如果x为+0且y为−0,则返回true,返回真。

  1. 如果x为−0,y为+0,则返回true。
  2. 返回

如果类型(X)是字符串,则如果x和y是完全相同的字符序列(相同长度和对应位置的相同字符),则返回

  1. ;否则,返回false。如果类型(X)是布尔型,则返回真,如果x和y都为true,则返回true;否则,如果x和y引用同一个对象,则返回 true。否则,返回false.

如果我写这样的东西

代码语言:javascript
复制
var t1 = undefined,t2 = 2;
typeof(t1); //"undefined"
typeof(t2); //"number"

t1 === t2; //returns false ?????

考虑第2点和第3点:它应该返回true。我正在用Chrome 15.0.874.106米进行测试,有人能解释一下这种情况到底是怎么回事吗?

EN

回答 2

Stack Overflow用户

发布于 2011-11-04 16:52:21

你得井然有序,If Type(x) is different from Type(y), return false.。因为false已经返回,所以它永远不会到达第2点或第3点。

票数 8
EN

Stack Overflow用户

发布于 2011-11-04 16:52:02

考虑到1: If Type(x) is different from Type(y), return false.

t1 === t2确实应该返回false。

t1undefinedt2是数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8012903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档