Object.is() 同值相等

news/2024/11/25 20:41:24/

Object.is() 同值相等

同值相等的底层实现 Object.is()
Object.is() 是 ES6抛出来的方法
ES5并没有暴露js引擎的同值相等的方法

不进行隐式类型转换 '1’与 1

var a = 1
var b = '1'
var res = Object.is(a, b)
console.log(res); // false

+0 与 0 与 -0

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

NaN 与 NaN 相等

var a = NaN
var b = NaN
var res = Object.is(a, b)
console.log(res); // true

undefined 与 undefined 相等

var res = Object.is(undefined, undefined)
console.log(res); // true

null 与 null 相等

var res = Object.is(null, null)
console.log(res); // true

对象

var obj = {}
const res = Object.is(obj,obj) // 同一引用相等
const res = Object.is({},{}) // 不同引用不相等

手写

要点

  1. -0 !== +0
  2. NaN === NaN
Object.myIs = function (a, b) {if (a === b) {// 用来判断 0 的情况// 1 / +0 = Infinity   1 / -0 = -Infinity// Infinity !== -Infinityreturn a !== 0 || 1 / a === 1 / b;}// 用来判断 NaN 的情况 js中NaN !== NaNreturn a !== a && b !== b;
};

http://www.ppmy.cn/news/208902.html

相关文章

Lync方案建议书

Lync方案建议书 微软(中国)有限公司 2011年2月 修改记录 日期版本/修改者备注2011/2/20 目 录 第1章 系统建设目标 2 第2章 系统建设原则 2 2.1 协议开放性 2 2.2 安全性 3 2.3 易用性 3 2.4 可用性 3 2.5 易管理 3 …

iOS

iOS 分类: 操作系统 2011-10-18 22:53 80人阅读 评论(0) 收藏 举报 ios 求助编辑百科名片 ios系统界面 iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的…

iPhone史上最全的使用教程

为什么80%的码农都做不了架构师?>>> iPhone史上最全的使用教程 iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别 这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正! …

江苏省×××局数据复制软件招标

(1) 需为平台提供商品化数据同步 / 复制软件 , 其中 省局和 12 个地市局(不包括南京局)各提供一套数据 同步 / 复制软件, 具体配置和功能要求如下: 配置 13 套数据同步 / 复制软件 的 license (许可&a…

dropbox介绍

百科名片 Dropbox Dropbox是一个提供同步本地文件的网络存储在线应用。支持在多台电脑多种操作中自动同步。并可当作大容量的 网络硬盘使用。Dropbox采用免费试用高级服务收费的Freemium模式,最初2GB空间免费,此后则需要按月支付存储费用。对于已经从Dro…

dropbox

dropbox 百科名片 Dropbox Dropbox(中文名:碉堡箱)是一个提供同步本地文件的网络存储在线应用。支持在多台 电脑多种操作中自动 同步。并可当作大容量的网络硬盘使用。Dropbox采用免费试用高级服务 收费的Freemium模式,最初2GB空间…

word应用2(实用)

1、快速改变Word文档的行距 选中你需要设置行距的文本段落,按“Ctrl 1”的组合键,即可将段落设置成单倍行距;按“Ctrl 2”的组合键,即可将段落设置成双倍行距;按“Ctrl5”的组合键,即可将段落设置成1.5倍行…

iOS Objective-C(2014-1-6 20:30、20140114,20140824,20150926、20160106、20160110、20160123)

20170508添加: Mac电脑搭建IPV6测试环境 http://jingyan.baidu.com/article/e75057f2f33cffebc91a89a3.html 小米2和2S都无法正常使用IPv6。 http://www.solve6.com/ iOS App提交审核被拒的原因 Metadata Rejected 一:是元数据的问题(解释说明…