当前位置: 首页 > 编程笔记 >

浅析Javascript ES6新增值比较函数Object.is

宋运锋
2023-03-14
本文向大家介绍浅析Javascript ES6新增值比较函数Object.is,包括了浅析Javascript ES6新增值比较函数Object.is的使用技巧和注意事项,需要的朋友参考一下

在Object.is出现之前我们比较值使用两等号 “==” 或 三等号“===”, 三等号更加严格,只要比较两方类型不同立即返回false。

另外,有且只有一个值不和自己相等,它是NaN

 

现在ES6又加了一个Object.is,让比较运算的江湖更加混乱。

多数情况下Object.is等价于“===”,如下

1 === 1 // true
Object.is(1, 1) // true
 
'a' === 'a' // true
Object.is('a', 'a') // true
 
true === true // true
Object.is(true, true) // true
 
null === null // true
Object.is(null, null) // true
 
undefined === undefined // true
Object.is(undefined, undefined) // true

但对于NaN、0、+0、 -0,则和 “===” 不同

NaN === NaN // false
Object.is(NaN, NaN) // true
 
0 === -0 // true
Object.is(0, -0) // false
 
-0 === +0 // true
Object.is(-0, +0) // false

以上就是关于Javascript ES6新增值比较函数Object.is的全部内容,希望对大家的学习工作能有所帮助。

 类似资料:
  • 问题内容: 我是Java的新手,我刚刚读了一个整数类的变量,可以用API的三种不同方式来描述。我有以下代码: 这是在循环内,只是输出。 我的目标是弄清楚如何查看整数值。 我知道这是正确的方法吗?还是它? 我知道这是不正确的。这是正确的吗?是否存在值比较运算符? 问题答案: 整数是自动拆箱的,因此您可以执行

  • 为什么React中shouldComponentUpdata,React.memo这些使用浅比较,而是===

  • 本文向大家介绍浅析Java 9 Optional API 新增方法,包括了浅析Java 9 Optional API 新增方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍Java 9 Optional API 新增方法。除了模块化,Java 9 也给Optional类增加了三个方法。 1. or 方法 有时当Optional为空时,我们想执行一些其他逻辑并也返回Optional。在Java9

  • 本文向大家介绍浅析C++ 仿函数,包括了浅析C++ 仿函数的使用技巧和注意事项,需要的朋友参考一下 1.为什么要有仿函数 我们先从一个非常简单的问题入手。假设我们现在有一个数组,数组中存有任意数量的数字,我们希望能够计数出这个数组中大于10的数字的数量,你的代码很可能是这样的: RecallFunc()函数的第三个参数是一个函数指针,用于外部调用,而IsGreaterThanTen()函数通常也是

  • 比较函数是一个函数,它接受两个参数a和b,并返回一个描述其顺序的整数。如果a小于b,则结果为负整数。如果a大于b,则结果为某个正整数。否则,a和b相等,结果为零。 此函数通常用于参数化来自标准库的排序和搜索算法。 实现字符的比较功能相当容易;只需减去参数: 这是因为通常假设两个字符之间的差适合一个整数。(注意,此假设不适用于的系统) 这种技巧无法用于比较整数,因为两个整数之间的差通常不适合一个整数

  • 问题内容: 这怎么不出现属性错误?函数对象没有任何比较方法。它以某种方式使用id()吗? 我知道它比较地址,但是如何?拦截__lt , eq__等是一些低级黑客吗? 问题答案: 函数对象没有定义自己的比较或丰富的比较。相反,它们从类型对象继承,这些类型对象根据内存中的对象地址实现丰富的比较。 因此,是的,它像内置的id()函数一样有效地使用地址。 在Python 3中,功能不再可排序。