JavaScript 轉(zhuǎn)換為簡單值
■知識點(diǎn)
在邏輯運(yùn)算環(huán)境中,所有復(fù)合型數(shù)據(jù)對象轉(zhuǎn)換為布爾值的都為true。
在數(shù)值運(yùn)算環(huán)境中,對象會嘗試調(diào)用valueOf()方法,如果不成功,再調(diào)用toStringO方法,獲取一個(gè)值,然后嘗試把該值轉(zhuǎn)換為數(shù)字。如果轉(zhuǎn)換成功,則取用該值參與運(yùn)算;如果轉(zhuǎn)換失敗,則取用NaN參與運(yùn)算。
在字符串運(yùn)算環(huán)境中,對象會調(diào)用toStringO方法獲取對象的字符串表示,以此作為轉(zhuǎn)換的值。
數(shù)組轉(zhuǎn)換為簡單值時(shí),會調(diào)用toStringO方法獲取一個(gè)字符串表示,然后根據(jù)具體的運(yùn)算環(huán)境,再把該字符串轉(zhuǎn)換為對應(yīng)類型的簡單值。
S 如果為空數(shù)組,則轉(zhuǎn)換為空字符串。
S 如果僅包含一個(gè)元素,則取該元素值。
S 如果包含多個(gè)元素,則轉(zhuǎn)換為多個(gè)元素的值組合的字符串,并以逗號分隔。
函數(shù)轉(zhuǎn)換為簡單值時(shí),會調(diào)用toStringO方法獲取字符串表示。對于普通函數(shù),則返回的是函數(shù)代碼本身,然后根據(jù)不同運(yùn)算環(huán)境,再把該字符串表示轉(zhuǎn)換為對應(yīng)類型的值。
■實(shí)例設(shè)計(jì)
【示例】下面的代碼創(chuàng)建3個(gè)不同類型的對象,然后參與邏輯與運(yùn)算,因?yàn)椴还芷渲凳鞘裁?,凡是對象轉(zhuǎn)換為布爾值的都為true,所以才會看到不同的顯示結(jié)果。
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,則顯示""
點(diǎn)擊加載更多評論>>