Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *
- (非严格)相等 (==)
- 严格相等 (===): 用于Array.prototype.indexOf, Array.prototype.lastIndexOf, 以及 case语句的匹配操作
- 零值相等: 用于TypedArray和ArrayBuffer的构造、Map和Set操作, 并将用于ES2016标准中的String.prototype.includes
- 同值相等: 用于所有其他场景
- 简单地说,两等号判等会在比较时进行类型转换;三等号判等不会进行类型转换(如果类型不同会直接返回 false );
- Object.is 在三等号判等的基础上特别处理了 NaN 、 -0 和 +0 ,保证 -0 和 +0 不再相同,但 Object.is(NaN, NaN) 会返回 true。(像其他数值一样比较 NaN ——由于 IEEE 754 的规范,无论使用双等号或三等号,比较 NaN 都会得到 false )
- 但请注意,此外,这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构, 以上三个运算符都会计算得到 false 。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement