码迷,mamicode.com
首页 > Web开发 > 详细

JS 相等判断(==,===,Object.is)

时间:2018-05-14 12:27:53      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:描述   identity   tps   ide   double   需要   一个   asc   family   

JavaScript提供三种不同的值比较操作:

  • 严格相等 ("triple equals" 或 "identity"),使用 === ,
  • 宽松相等 ("double equals") ,使用 ==
  • 以及 Object.is (ECMAScript 2015/ ES6 新特性)

简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false );  而Object.is的行为方式与三等号相同,但是对于NaN和-0和+0进行特殊处理,所以最后两个不相同,而Object.is(NaN,NaN)将为 true。(通常使用双等号或三等号将NaN与NaN进行比较,结果为false,因为IEEE 754如是说.) 请注意,所有这些之间的区别都与其处理原语有关; 这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构, 以上三个运算符都会计算得到 false 。

 

什么时候使用 Object.is 或者 三等

object.is 会对对象属性描述进行判断,如果不需要判断属性描述的情况下应优先使用三等

对象属性描述   参考 Object.defineProperty

 

JS 相等判断(==,===,Object.is)

标签:描述   identity   tps   ide   double   需要   一个   asc   family   

原文地址:https://www.cnblogs.com/xiaoliwang/p/9035428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!