Object.is()
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()相关推荐
- 在kotlin companion object中读取Bean,注入Bean对象
在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件. 使用组 ...
- 在kotlin companion object中读取spring boot配置文件,静态类使用@Value注解配置
在kotlin companion object中读取配置文件 静态类使用@Value注解配置 class Config {@Value("\${name}")fun setNam ...
- Object的finalize()方法的作用是否与C++的析构函数作用相同
Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...
- 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: ...
- 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 ...
- 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 ...
- Python错误:AttributeError: 'generator' object has no attribute 'next'解决办法
今天在学习生成器对象(generation object)运行以下代码时,遇到了一个错误: #定义生成器函数 def liebiao(): for x in range(10): yield x #函 ...
- Java OOP(Object Oriented Programming)个人理解及总结
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 其三大特征:封装,继承,多态: 封装:解决数据的安全问题. 继承:解决代码的重用问题. 多态:解决程序 ...
- 目标检测数据集The Object Detection Dataset
目标检测数据集The Object Detection Dataset 在目标检测领域,没有像MNIST或Fashion MNIST这样的小数据集.为了快速测试模型,我们将组装一个小数据集.首先,我们 ...
- 多尺度目标检测 Multiscale Object Detection
多尺度目标检测 Multiscale Object Detection 我们在输入图像的每个像素上生成多个锚框.这些定位框用于对输入图像的不同区域进行采样.但是,如果锚定框是以图像的每个像素为中心生成 ...
最新文章
- 【python教程入门学习】学习Python可以做什么
- jieba分词小案例
- C语言: 函数调用的开销
- C语言多维数组与多级指针
- 线性运算和非线性运算
- Java并发编程之synchronized关键字解析
- 【C++学习】C++中的强制转换
- phpstorm 10 注册码
- java第七章jdbc课后简答题_Java进阶之JDBC面试题(7)
- paip.php 配置ZEND DEBUGGER 断点调试for cli..
- 【LinuxOS】Ubuntu学习感悟
- C++用*和空格输出一个正方形及其对角线
- 暗黑 pvpgn mysql 架设_暗黑破坏神2战网架设图文教程
- 在vue.js中实现a标签href tel的打电话功能
- RESTORE 还原数据库
- ELK学习--Kibana 5.6.5 安装
- pwn libc找偏移的在线网站
- backtrader FAQ:什么是一篮子订单Bracket Orders optMaster
- 51nod 1718 Cos的多项式 【数学】
- SDUT OJ 2978