JavaScript 轉換為簡單值
■知識點
在邏輯運算環(huán)境中,所有復合型數(shù)據(jù)對象轉換為布爾值的都為true。
在數(shù)值運算環(huán)境中,對象會嘗試調用valueOf()方法,如果不成功,再調用toStringO方法,獲取一個值,然后嘗試把該值轉換為數(shù)字。如果轉換成功,則取用該值參與運算;如果轉換失敗,則取用NaN參與運算。
在字符串運算環(huán)境中,對象會調用toStringO方法獲取對象的字符串表示,以此作為轉換的值。
數(shù)組轉換為簡單值時,會調用toStringO方法獲取一個字符串表示,然后根據(jù)具體的運算環(huán)境,再把該字符串轉換為對應類型的簡單值。
S 如果為空數(shù)組,則轉換為空字符串。
S 如果僅包含一個元素,則取該元素值。
S 如果包含多個元素,則轉換為多個元素的值組合的字符串,并以逗號分隔。
函數(shù)轉換為簡單值時,會調用toStringO方法獲取字符串表示。對于普通函數(shù),則返回的是函數(shù)代碼本身,然后根據(jù)不同運算環(huán)境,再把該字符串表示轉換為對應類型的值。
■實例設計
【示例】下面的代碼創(chuàng)建3個不同類型的對象,然后參與邏輯與運算,因為不管其值是什么,凡是對象轉換為布爾值的都為true,所以才會看到不同的顯示結果。
var b = mew Boolean(false); //包裝false為對象
var n = new Number(0); //包裝數(shù)字0為對象
var s = new String(""); //包裝空字符串對象
b && console.log(b); //如果b為true,則顯示"false"
n && console.log(n); //如果n為true,則顯示"0"
s && console.log(s); //如果s為true,則顯示""
點擊加載更多評論>>