運算符中「=」,「==」,「===」的區別

Javascript支持「=」,「==」和「===」運算符,它們分別表明賦值,相等,恆等(嚴格相等)下面來看下它們具體的區別!數組

1.賦值「=」

// 當出現一個「=」時,表示賦值操做
var number = 6;
const name = 「Tom」;
複製代碼

2.相等運算符「==」

相等運算符的比較並不嚴格,若是兩個操做數不是同一類型,那麼相等運算符會嘗試進行一些類型轉換(隱式轉換),而後進行比較:spa

一,若是兩個操做數的類型相同,那 麼比較結果爲相等;code

二,若是兩個操做數類型不一樣,「==」相等操做符 也可能會認爲它們相等,檢測相等將會遵照以下 規則和類型轉換;對象

  • 若是一個值是null,另外一個是undefined,則 它們相等;
  • 若是一個值是數字,另外一個是字符串,先將字符串轉換爲數字,而後使用轉換後的值進行 比較;
  • 若是其中一個值是true,則將其轉換爲1再 進行比較。若是其中一個值是false,則將其轉換 爲0再進行比較;
  • 若是一個值是對象,另外一個值是數字或字符串,則將對象轉 換爲原始值,而後再進行比較;
  • 其餘不一樣類型之間的比較均不相等;
"1"==true  // true
複製代碼

3.相等運算符「===」

嚴格相等運算符「===」,首先計算其操做數的值,而後比較這兩個值,比較過程沒有任何類型轉換:ip

  • 若是兩個值類型不相同,則它們不相等;
  • 若是兩個值都是null或者都是undefined,則它們相等;
  • 若是兩個值都是布爾值true或都是布爾值 false,則它們相等;
  • 若是其中一個值是NaN,或者兩個值都是 NaN,則它們不相等。NaN和其餘任何值都是不 相等的,包括它自己;
  • 若是兩個值爲數字且數值相等,則它們相等。若是一個值爲0,另外一個值爲-0,則它們一樣相等;
  • 若是兩個值爲字符串,它們的長度或內容相同,則它們相等;
  • 若是兩個引用值指向同一個對象、數組或函 數,則它們是相等的。若是指向不一樣的對象,則 它們是不等的,儘管兩個對象具備徹底同樣的屬性;
相關文章
相關標籤/搜索