最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球快看:JS中的相等性判断

来源:博客园


(资料图片)

一、ES2015中有四种相等算法1. 抽象(非严格)相等比较。(==)2. 严格相等比较。(===)3. 同值。(Object.is())4. 同值零。二、JavaScript提供三种不同的值比较操作1. 严格相等比较,使用 === 比较符号。(在两者进行比较时,不会执行类型转换)2. 抽象相等比较,使用 == 比较符号。(在两者进行比较时,会执行类型转换。)3. Object.is()。(和严格相比较类似,只是对于NaN和+0与-0进行特殊处理)1. NaN == NaN 返回false,NaN === NaN 返回false,Object.is(NaN, NaN) 返回true。2. +0 === -0 返回true,+0 == -0 返回true,Object.is(+0, -0) 返回false。三、非严格相等比较下的类型转换1. undefined与null和其他类型的值相比较时,都不相等。以至于其他类型在与undefined或者null比较时都不会出现类型转换。2. 同类型的值相比较时不需要进行类型转换。3. 引用对象在和其他非undefined、null、引用类型的值相比较时,都会尝试调用 toString和valueOf方法将自身先转换为原始值再参与比较。4. String类型在与Number、Boolean类型相比较时,会先转成数字再参与比较。5. Boolean类型再与Number、String、引用类型相比较时,会先转成数字在参与比较。6. Number类型与其他类型相比较时,不用转换类型。

相关链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness

关键词: 类型转换 引用类型