嚴格相等"==="
寬鬆相等"=="
Object,is(es6d的新特性)
本文主要跟大家分享JavaScript相等性判斷,希望能幫助大家。
三等號將進行相同的比較,而不進行型別轉換(如果型別不同, 只是總會傳回false ) ,
如果兩個值都是number類型,當兩個都不是NaN,且數值相同, 或是兩個值分別為+0 和-0 時,兩個值被認為是全等的
(1)不同型別值
如果两个值的类型不同,直接返回false
#(2)相同類別的原始型別值
同一类型的原始类型的值(数值、字符串、布尔值)比较时,值相同就返回true,值不同就返回false。
(3)同一類別的複合型別值
两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
雙等號將執行類型轉換
(1)原始類型的值
原始类型的数据会转换成数值类型再进行比较。字符串和布尔值都会转换成数值
(2)物件與原始類型值比較
对象(这里指广义的对象,包括数值和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较
(3)undefined和null
undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true
(4)其他類型和布林之間的相等比較
会首先把boolean 强制转换成 .toNumber();
的行為方式與三等號相同, 但是對於NaN和-0和+0進行特殊處理,
所以最後兩者不相同,
Object.is(NaN,NaN)將為true
Object.is(+0,-0)將為false
相關推薦:
##php 相等性比較以及empty,isset, isnull
以上是JavaScript相等性判斷分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!