在面試中經常會碰見問型別轉換的問題,例如 == false、 == {}返回的是真還是假等等。。。
null undefined nan 0 ''
複製**
記住只有這五個值是假的剩下的全部是真的。
如果是乙個值判斷是否是真假,除了預設是false的五個值剩下的全部是true。
如果是兩個值比較是否相等,遵循如下規則。
val1 == val2 如果兩個值可能不是同一資料型別,如果是==比較的話,會預設進行資料轉換。
2.1 object == object,比較永遠不相等。
2.2 object == string 先將物件轉換成字串(呼叫tostring方法),然後再比較。
轉換成字串 ""
{} 轉換成字串 "[object object]"
複製**
2.3 object == boolean 先將物件轉換成字串(tostring),再把字串轉換成數字(number)、布林值轉換成數字(true 轉換成 1 false 換成成 0)然後讓兩個數字進行比較。
number("") 會輸出 0
複製**
2.4 object == number 先將物件轉換成字串(tostring),再把字串轉換成數字(number),再進行比較。
2.5 number == boolean 布林值轉換成數字,然後再比較。
2.6 number == string 字串轉換成數字,然後再比較。
2.7 string == boolean 都轉換成數字,,然後再比較。
2.8 null == undefined 結果是true。
2.9 null 或者 undefined 比較另外的所有值,結果都是false,不相等。
例如:
== false 返回 true 2.3規則。
== 返回 false 2.1規則。
2 == true 返回 false 2.5規則。
複製**
=== 三個等號還會比較資料型別。
這些規則背下來,就能完美的應付這樣的面試題了,加油!
JavaScript 資料型別
變數 宣告區域性變數 varmessage 宣告全部變數 message typeof 例如 var message some string alert typeof message string alert typeof message string alert typeof 95 number ...
Javascript資料型別
ecmascript中有5種簡單資料型別 也稱為基本資料型別 1.undefined 該型別只有乙個值,即undefined。在使用var宣告但未初始化時,這個變數就是undefined 2.null 該型別只有乙個值,即null。null undefined 3.boolean 4.number ...
JavaScript資料型別
undefined派生於null,因此在使用 進行比較時會返回true 沒有必要將變數值顯示宣告undefined 宣告空物件時應將其值賦值為nullundefined與null的關係 3 boolean true為真,false為假 true不一定 1,false不一定 0 使用boolean 進...