javascript相等性判断

JavaScript提供三种不同的值比较操作:
1.严格相等 ===
对于除了数值之外的值,全等操作符使用明确的语义进行比较:一个值只与自身全等。

var obj = new String("0");
var str = "0"
var obj1 = obj;
console.log(obj === str); //false
console.log(obj===obj1);  //true
console.log(null === undefined); // false

浮点数 0 是不分正负的,全等操作符认为这两个值是全等的。

console.log(-0 === +0)  // true

浮点数包含了 NaN 值,全等操作符认为 NaN 与其他任何值都不全等,包括它自己。

console.log(NaN === NaN);  //  false

2.非严格相等 ==
相等操作符比较两个值是否相等,在比较前将两个被比较的值转换为相同类型。在转换后(等式的一边或两边都可能被转换),最终的比较方式等同于全等操作符 === 的比较方式。


相等.png
var num = 0;
var obj = new String("0");
var str = "0";

console.log(num == obj); // true
console.log(num == str); // true
console.log(obj == str); // true
console.log(NaN === NaN);  //false

3.Object.is()
Object.is() 与=== 不同之处只有两个:一是+0不等于-0,二是NaN等于自身。

console.log(Object.is(+0, -0)); // false
console.log(Object.is(NaN, NaN)); // true

参考网页:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 JavaScript 简介 JavaScript 具备与浏览器窗口及其内容等几乎所有方面交互的能力。 欧洲...
    力气强阅读 1,181评论 0 0
  • 本章内容 语法 数据类型 流控制语句 理解函数 3.1 语法 3.1.1 区分大小写 区分大小写 3.1.2 标识...
    闷油瓶小张阅读 736评论 0 0
  • 1、标识符 标识符是指变量、函数、属性的名字,或函数的参数。 格式规则: 第一个字符必须是一个字母、下划线(_)或...
    霜天晓阅读 714评论 0 0
  • 1、标识符 标识符是指变量、函数、属性的名字,或函数的参数。 格式规则: 第一个字符必须是一个字母、下划线(_)或...
    风中丶凌乱阅读 1,651评论 0 0
  • 早上起床很早。带孩子逛集市,碰见了二姨,然后就一起回了老家。在老家,正好看到家后的大娘家把蒜都起来了。爸爸决定把我...
    北门封路阅读 139评论 0 1