首頁  >  文章  >  web前端  >  JavaScript相等性判斷分享

JavaScript相等性判斷分享

小云云
小云云原創
2018-02-12 15:34:502070瀏覽

JavaScript提供三種不同的值比較運算

  • 嚴格相等"==="

  • 寬鬆相等"=="

  • 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();

Object.is

的行為方式與三等號相同, 但是對於NaN和-0和+0進行特殊處理,
  所以最後兩者不相同,
Object.is(NaN,NaN)將為true
Object.is(+0,-0)將為false

比較圖表

JavaScript相等性判斷分享

相關推薦:

##php 相等性比較以及empty,isset, isnull

以上是JavaScript相等性判斷分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn