基本數據類型: number,string,boolean,undefined,null函數
引用數據類型:function,object,arrayspa
僞對象: 除了null和undefined,其餘三種原始類型都是僞對象。也就是說,一個存儲原始值的變量,對象
一樣能夠使用對應的類的方法,甚至,即便是字面量也能夠直接使用這些方法,但它自己依blog
舊是原始類型。ip
Ex: var inn= 4; inn.toString() //"4"string
typeOf:io
只返回6種類型:number,string,boolean,undefined,object,functionfunction
*null類型進行typeof操做符後,結果是object,由於null類型被當作一個空對象引用變量
*array結果也是objectobject
eg: typeof age /* undefined */ 未定義,卻返回undefined
強制類型轉換
(構造函數) Number,Boolean,String,Object,Function,Array
parseInt,parseFloat
隱式類型轉換:
!!: 通常用來將後面的表達式轉換爲布爾型的數據(boolean).
!操做符會先將值轉爲boolean, 再求反, !! ~= Boolean()
~~: 操做符~, 是按位取反的意思,,實際上在JS中能夠將浮點數變成整數.
Tips: number + Boolean -> number + number
NAN:
NAN 自身也不相等 if(x !=X)
*isNaN()函數,傳入一個參數,函數會先將參數轉換爲數值。(若是參數類型爲對象類型,會先調用對象的valueOf()方法, 再肯定該方法返回的值是否能夠
轉換爲數值類型。若是不能,再調用對象的toString()方法,再肯定返回值。)
instanceof:
用來檢測是否由某一類型函數建立
eg: var a = [];
a instanceof Array //true