1. 程式人生 > >Javascript 隱式型別轉換規則

Javascript 隱式型別轉換規則

1. Javascript隱式型別轉換與Java的區別

一個Javascript表示式中包含不同型別的值進行運算時,可能會發生隱式型別轉換,也可能不轉換,隱式型別轉換規則與運算元,運算子都相關,這是與強型別語言(Java)不同的地方,Java隱式型別一般只與運算元相關,即表數範圍小的型別向表數範圍大的型別轉換。而Javascript隱式型別轉換可以理解為一種語義推斷,運算元向更有意義的結果方向進行轉換。為了編寫更安全的程式碼,我們在求真假的布林表示式中應儘量避免隱式型別轉換,多使用顯示型別轉換或嚴格等價性運算子。

2. undefined ,null,NaN

undefined一般用作變數或者物件屬性的預設值

null一般用作物件的佔位值

NaN是向number型別轉換時,但又不能表示成一個數,就等於NaN

Number(undefined)   //NaN 非數

Number(null)   //0

Number(NaN) //NaN

String(undefined) //字串"undefined"

String(null) //字串"null"

String(NaN) //字串"NaN"

Boolean(undefined) //false

Boolean(null) //false

undefined > 0 //false, 不轉換

undefined < 0 //false,不轉換

undefiend = 0 //false, 不轉換

null > 0 //false, 不轉換

null < 0 //false,不轉換

null = 0 //false, 不轉換

null == undefined //true, ECMAscript規定

3. 非數 NaN

NaN是number型別,但它不是數,它不等於任何數,也不等於它自己。