Javascript 隱式型別轉換規則
阿新 • • 發佈:2018-11-25
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型別,但它不是數,它不等於任何數,也不等於它自己。