web前端Javascript基础—JavaScript中的 Object.is() 与 === 运算符的区别
小职 2021-03-23 来源 :前端先锋 阅读 972 评论 0

摘要:本文主要介绍了web前端Javascript基础—JavaScript中的 Object.is() 与 === 运算符的区别,通过具体的内容向大家展现,希望对大家前端Javascript的学习有所帮助。

本文主要介绍了web前端Javascript基础—JavaScript中的 Object.is() 与 === 运算符的区别,通过具体的内容向大家展现,希望对大家前端Javascript的学习有所帮助。

web前端Javascript基础—JavaScript中的 Object.is() 与 === 运算符的区别


如果要检查 JavaScript 中的相等性,有两个比较运算符:双等号运算符(==)和三等号运算符(===)。

 

简而言之,双等号运算符(==)仅仅比较值,而三等号运算符(===)可以比较值和类型。但是还有第三个选项 Object.is(),除了 NaN,+0 和 -0 之外,其行为与三等号于运算符相同。

 

以下是一些例子,可进一步明确说明:

 

{} === {}; // false

Object.is({}, {}); // false

 

1 === 1; // false

Object.is(1, 1); // false

 

+0 === -0; // true

Object.is(+0, -0); // false

 

NaN === NaN; // false

Object.is(NaN, NaN); // true

以下代码是在 ES5 中模拟实现的Object.is:

 

Object.defineProperty(Object, 'is', {

  value: function(x, y) {

    if (x === y) {

      // 针对+0 不等于 -0的情况

      return x !== 0 || 1 / x === 1 / y;

    }

    // 针对NaN的情况

    return x !== x && y !== y;

  },

  configurable: true,

  enumerable: false,

  writable: true

}); 



我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取学习教程,开发工具,代码大全,参考书籍

web前端Javascript基础—JavaScript中的 Object.is() 与 === 运算符的区别

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved