千家信息网

JavaScript中Object.is()与===运算符有什么区别

发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,这篇文章主要介绍"JavaScript中Object.is()与===运算符有什么区别"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"JavaScript中Ob
千家信息网最后更新 2024年10月17日JavaScript中Object.is()与===运算符有什么区别

这篇文章主要介绍"JavaScript中Object.is()与===运算符有什么区别"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"JavaScript中Object.is()与===运算符有什么区别"文章能帮助大家解决问题。

简而言之,双等号运算符(==)仅仅比较值,而三等号运算符(===)可以比较值和类型。但是还有第三个选项 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 });

关于"JavaScript中Object.is()与===运算符有什么区别"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0