1.typeof 返回值有六種可能: "number", "string","boolean" ,"object", "function" 和 "undefined "函數
2.關於NAN的理解3d
NaN, 它是用來表示是否屬於number類型的一種狀態: 是或否。而不是一個確切的值。blog
NaN值通常會在什麼狀況下出現呢?通常有兩種狀況:字符串
(1) 一個表達式中若是有減號(-)、乘號(*) 或 除號(/) 等運算符時,JS引擎會在計算以前試圖將運算符兩邊的變量轉化爲number類型,若是轉化失敗,表達式將返回NaNstring
(2) 直接使用 parseInt, parseFloat 或 Number 將一個非數字的值轉化爲數字時,表達式返回NaNio
"abc"- 3// NaNfunction
parseInt("abc")// NaN變量
parseFloat("abc")//NaNobject
Number("abc")//NaNim
Number("123abc");//NaN
parseInt("123abc");//123
parseInt("123abc45");//123
parseFloat("123.45abc");//123.45
所以,當一個字符串不能被Number,parseInt,parseFloat成功轉換時,就返回NaN,表示該字符串沒法被識別爲數字類型,這是一個異常狀態,並非一個確切的值。
因此 NaN != NaN , 由於它是一個異常狀態,而不是一個確切的值。
另外,與NaN相關的還有一個函數,即 isNaN() , 它的做用是檢查一個字符串是否能被Number()成功轉換,即強制轉化整個字符串。
isNaN("123")//false 能轉換
isNaN("abc")//true 不能轉換
isNaN("123abc")//true 部分可轉換,但總體不能轉換
isNaN("123.45abc")//true 部分可轉換,但總體不能轉換
3.關於number