JavaScript相等性判斷分享

小云云
發布: 2018-02-12 15:34:50
原創
2006 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!