在總結toString()方法和valueOf()方法以前先來講一下強制轉換。強制轉換有三種:Boolean()、Number()、String()。函數
1.Boolean()spa
當要轉換的值是至少有一個字符的字符串、非 0 數字或對象時,Boolean() 函數將返回 true。若是該值是空字符串、數字 0、undefined 或 null,它將返回 false。code
var b1 = Boolean(""); //false - 空字符串 var b2 = Boolean("hello"); //true - 非空字符串 var b3 = Boolean(50); //true - 非零數字 var b4 = Boolean(null); //false - null var b5 = Boolean(0); //false - 零 var b6 = Boolean(new object()); //true - 對象
2.Number()對象
Number() 函數的強制類型轉換與 parseInt() 和 parseFloat() 方法的處理方式類似,只是它轉換的是整個值,而不是部分值。用 Number() 進行強制類型轉換,"1.2.3" 將返回 NaN,由於整個字符串值不能轉換成數字。若是字符串值能被完整地轉換,Number() 將判斷是調用 parseInt() 方法仍是 parseFloat() 方法。ci
結果 | 用法 |
---|---|
Number(false) | 0 |
Number(true) | 1 |
Number(undefined) | NaN |
Number(null) | 0 |
Number("1.2") | 1.2 |
Number("12") | 12 |
Number("1.2.3") | NaN |
Number(new object()) | NaN |
Number(50) | 50 |
3.String()字符串
要執行String(),只須要調用做爲參數傳遞進來的值的 toString() 方法,即把 12 轉換成 "12",把 true 轉換成 "true",把 false 轉換成 "false",以此類推。String()和toString() 方法的惟一不一樣之處在於,對 null 和 undefined 值強制類型轉換能夠生成字符串而不引起錯誤。table
下面來講明toString()方法和valueOf()方法object