JavaScript 中 == 和 Object.is() 的区别

简介: JavaScript 中 == 和 Object.is() 的区别

在 JavaScript 中,== 是相等运算符,用于比较两个值是否相等。而 Object.is() 是一个方法,用于比较两个值是否完全相同。


区别如下:


  1. 数据类型比较:== 运算符在比较两个值之前会进行类型转换,而 Object.is() 不会进行类型转换。


console.log(1 == '1'); // true,进行了类型转换
console.log(Object.is(1, '1')); // false,没有进行类型转换


  1. NaN 的比较:== 运算符认为 NaN 与任何值都不相等,而 Object.is() 认为 NaN 与 NaN 相等。


console.log(NaN == NaN); // false
console.log(Object.is(NaN, NaN)); // true


  1. 0 和 -0 的比较:== 运算符认为 0 和 -0 相等,而 Object.is() 认为它们是不同的。


console.log(0 == -0); // true
console.log(Object.is(0, -0)); // false
相关文章
|
18天前
|
JSON JavaScript 前端开发
【JavaScript】JavaScript中的深拷贝与浅拷贝详解:基础概念与区别
JavaScript 中,理解数据拷贝的深浅至关重要。浅拷贝(如扩展运算符`...`、`Object.assign()`)仅复制对象第一层,共享内部引用,导致修改时产生意外联动。深拷贝(如自定义递归函数、`_.cloneDeep`或`JSON.parse(JSON.stringify())`)创建独立副本,确保数据隔离。选择哪种取决于性能、数据独立性和资源需求。深拷贝虽慢,但确保安全;浅拷贝快,但需小心引用共享。在面试中,理解这些概念及其应用场景是关键。
32 4
【JavaScript】JavaScript中的深拷贝与浅拷贝详解:基础概念与区别
|
5天前
|
存储 JavaScript
js的forEach和map的区别
js的forEach和map的区别
7 1
|
11天前
|
存储 JSON 前端开发
JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓
JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓
|
14天前
|
XML 前端开发 JavaScript
HTML、CSS、JavaScript有什么区别
HTML、CSS、JavaScript有什么区别
|
16天前
|
JavaScript 前端开发 异构计算
JS中重排和重绘的区别是什么?
JS中重排和重绘的区别是什么?
17 1
|
19天前
|
JavaScript 前端开发 API
ECMAScript vs JavaScript: 理解两者间的联系与区别
ECMAScript vs JavaScript: 理解两者间的联系与区别
|
1天前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
6 0
|
1天前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
5 0
|
5天前
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
7 0
|
16天前
|
JavaScript 前端开发
JS中浅拷贝和深拷贝的区别
JS中浅拷贝和深拷贝的区别
11 0