JavaScript中,object轉換為boolean的操作非常簡單:所有的object轉換成boolean後均為true;即使是new Boolean(false)這樣的object在轉換為boolean後仍然為true。
復制代碼 代碼如下:
var x = new Boolean(false);
if(x){
console.log("x is true");
}
在將object轉換為string或者number時,JavaScript會調用object的兩個轉換函數:toString()與valueOf()。
toString()
toString()函數的作用是返回object的字符串表示,JavaScript中object默認的toString()方法返回字符串”[object Object]“。定義類時可以實現新的toString()方法,從而返回更加具有可讀性的結果。JavaScript對於數組對象、函數對象、正則表達式對象以及Date日期對象均定義了更加具有可讀性的toString()方法:
1.array的toString()方法將返回以逗號分隔的數組成員。比如,[1,2,3].toString()會返回字符串”1,2,3″。
2.function的toString()方法將返回函數的文本定義。比如,(function(x){return x*2;}).toString()會返回字符串”function(x){return x*2;}”。
3.RegExp的toString()方法與function的toString()方法類似,將返回正則表達式的文本定義。比如,/\d+/g.toString()會返回字符串”/\\d+/g”。
4.Date的toString()方法將返回一個具有可讀性的日期時間字符串。
valueOf()
valueOf()函數的作用是返回object的數值表示,JavaScript中object默認的valueOf()方法會返回該object自身。與toString()一樣,定義類時可以實現新的valueOf()方法,從而返回需要的結果。JavaScript對於Date對象定義了更加具有可讀性的valueOf()方法:
1.Date的valueOf()方法將返回一個數值,該數值為Date對象與1970年1月1日零時的時間差(以毫秒為單位)。