1. 程式人生 > >ValueOf()和toString()

ValueOf()和toString()

bsp 就會 轉化 log turn func spa 需要 數值

var colors = ["red", "blue", "green"]; // 創建一個包含3 個字符串的數組
console.log(colors.toString()); // red,blue,green
console.log(colors.valueOf()); // red,blue,green
console.log(colors); // red,blue,green
/*valueOf和toString方法區別*/
var arr = [1, 2, 3];
/*判斷是否為數組*/
console.log(Array.isArray(arr.valueOf())); //true
console.log(Array.isArray(arr.toString())); //
false /* *其實valueOf()調用完以後還是返回一個數組 *這個數組被alert的時候會調用toString()函數 *所以不是valueOf()和toString()函數相同,而是,根本就是間接的調用了toString()函數! */ arr.toString = function() { console.log("你調用了toString函數"); } console.log(arr.valueOf()); console.log(arr.toString()); // 而對於數值,我們可以調用valueOf的時候直接可以獲得數字進行計算, // 不必轉化成字符串,所以不會調用toString反言之,
// 如果我們需要獲得操作對象的字符串形式的時候就會調用其toString函數 /*註:數字,只使用toString方法,當為字符串時,會自動調用valueof方法*/ var c = { i: 11111, valueOf: function() { console.log("你調用了c的valueOf函數"); return this.i; }, toString: function() { console.log("你調用了c的toString函數"); return this.i; } };
// 如果要求的是原始值那麽就會調用valueOf, // 如果要求的是字符串那麽就會調用toString。 alert(+c);//valueOf alert(c);//tostring

ValueOf()和toString()