Object.is()方法判断两个值是否是相同的值。

语法:Object.is()方法判断两个值是否是相同的值。

Object.is() 判断两个值是否相同。如果下列任何一项成立,则两个值相同:

  • 两个值都是 undefined
  • 两个值都是 null
  • 两个值都是 true 或者都是 false
  • 两个值是由相同个数的字符按照相同的顺序组成的字符串
  • 两个值指向同一个对象
  • 两个值都是数字并且
    • 都是正零 +0
    • 都是负零 -0
    • 都是 NaN
    • 都是除零和 NaN 外的其它同一个数字

这种相等性判断逻辑和传统的 == 运算符所用的不同,== 运算符会对它两边的操作数做隐式类型转换(如果它们类型不同),然后才进行相等性比较,(所以才会有类似 "" == false 为 true 的现象),但 Object.is 不会做这种类型转换。

这与===运算符也不一样。===运算符(和==运算符)将数字值-0+0视为相等,并认为Number.NaN不等于NaN

Object.is('foo', 'foo');     // true
Object.is(window, window);   // trueObject.is('foo', 'bar');     // false
Object.is([], []);           // falsevar test = { a: 1 };
Object.is(test, test);       // trueObject.is(null, null);       // true// 特例
Object.is(0, -0);            // false
Object.is(-0, -0);           // true
Object.is(NaN, 0/0);         // true

Polyfill

if (!Object.is) {Object.is = function(x, y) {// SameValue algorithmif (x === y) { // Steps 1-5, 7-10// Steps 6.b-6.e: +0 != -0return x !== 0 || 1 / x === 1 / y;} else {// Step 6.a: NaN == NaNreturn x !== x && y !== y;}};
}

转自MDN

Object.is()相关推荐

  1. 在kotlin companion object中读取Bean,注入Bean对象

    在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件.   使用组 ...

  2. 在kotlin companion object中读取spring boot配置文件,静态类使用@Value注解配置

    在kotlin companion object中读取配置文件 静态类使用@Value注解配置 class Config {@Value("\${name}")fun setNam ...

  3. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  4. libgstreamer-1.0.so.0: cannot open shared object file: No such file or directory

    1. 问题现象 error while loading shared libraries: libgstreamer-1.0.so.0: cannot open shared object file: ...

  5. RuntimeError: Expected object of backend CUDA but got backend CPU for argument

    RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1' 原因:变量没有加cud ...

  6. RuntimeError: Expected object of device type cuda but got device type cpu for argument pytorch数据位置

    RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 'target' i ...

  7. Python错误:AttributeError: 'generator' object has no attribute 'next'解决办法

    今天在学习生成器对象(generation object)运行以下代码时,遇到了一个错误: #定义生成器函数 def liebiao(): for x in range(10): yield x #函 ...

  8. Java OOP(Object Oriented Programming)个人理解及总结

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 其三大特征:封装,继承,多态: 封装:解决数据的安全问题. 继承:解决代码的重用问题. 多态:解决程序 ...

  9. 目标检测数据集The Object Detection Dataset

    目标检测数据集The Object Detection Dataset 在目标检测领域,没有像MNIST或Fashion MNIST这样的小数据集.为了快速测试模型,我们将组装一个小数据集.首先,我们 ...

  10. 多尺度目标检测 Multiscale Object Detection

    多尺度目标检测 Multiscale Object Detection 我们在输入图像的每个像素上生成多个锚框.这些定位框用于对输入图像的不同区域进行采样.但是,如果锚定框是以图像的每个像素为中心生成 ...

最新文章

  1. 【python教程入门学习】学习Python可以做什么
  2. jieba分词小案例
  3. C语言: 函数调用的开销
  4. C语言多维数组与多级指针
  5. 线性运算和非线性运算
  6. Java并发编程之synchronized关键字解析
  7. 【C++学习】C++中的强制转换
  8. phpstorm 10 注册码
  9. java第七章jdbc课后简答题_Java进阶之JDBC面试题(7)
  10. paip.php 配置ZEND DEBUGGER 断点调试for cli..
  11. 【LinuxOS】Ubuntu学习感悟
  12. C++用*和空格输出一个正方形及其对角线
  13. 暗黑 pvpgn mysql 架设_暗黑破坏神2战网架设图文教程
  14. 在vue.js中实现a标签href tel的打电话功能
  15. RESTORE 还原数据库
  16. ELK学习--Kibana 5.6.5 安装
  17. pwn libc找偏移的在线网站
  18. backtrader FAQ:什么是一篮子订单Bracket Orders optMaster
  19. 51nod 1718 Cos的多项式 【数学】
  20. SDUT OJ 2978

热门文章

  1. 租号玩服务器未响应,win10cf进度条不动
  2. 更改Cisco UCS 和 vCenter IP地址
  3. 推二手车平台搅局,通用汽车能从Carvana手上抢到蛋糕吗?
  4. 软件安装教程2——MyEclipse下载与安装
  5. 方舟服务器文件夹,方舟生存进化文件夹里哪个才是打开游戏 | 手游网游页游攻略大全...
  6. 优生应该掌握的十个学习好习惯
  7. 高级程序员标准指南大师风范
  8. 从头来第二步正常使用CLion
  9. nohup和作用详解
  10. 【先楫HPM6750系列】GPIO点灯和按键控制