== 和 === 操做符詳細解析

== 和 === 他們倆到底有什麼樣的卻別,其實在以前仍是 == 接觸的比較多.包括在使用其餘編程語言. === 彷佛是在Javascript獨有的.那咱們來看看他們到底有什麼不一樣.編程

簡單來講, == 不會檢查類型, === 會檢測比較的兩方是否類型相同. 所以, == 比較也是能夠的. 可是在JS引擎下它們將轉換爲相同的類型進行比較.數組

=== 比較類型和值.所以,加入兩邊類型不一樣,答案永遠是false. 例如比較兩個字符串,他們必須是同一字符的集合.另外的原始(number,boolean)必須分配一樣的值.編程語言

 

強制規則: 在JS引擎下隱式類型轉換使用 == 做比較.強制類型轉換使用下面的規則:htm

a) 若是兩個操做對象是一樣類型使用 ===對象

b) undefined == nullip

c) 若是一個操做對象是字符串,另一個是數字,將字符串轉換爲數字.字符串

d) 若是一個是布爾類型,另一個不是布爾類型,將布爾類型轉換爲數字,再做比較.get

e) 當對象與一個字符串或者數字做比較,試着將對象轉換爲一個原始類型,在試着比較.class

 

當比較對象時,要當心注意,標識符必須引用一樣的對象或者一樣的數組.network

 

注意: NaN,null和undefined永遠不=== 其餘類型. NaN 甚至不等於(===)它本身.

原文連接:http://www.gbtags.com/gb/share/10058.htm

相關文章
相關標籤/搜索