JavaScript 引擎內部的抽象操做 ToPrimitive()有着這樣的簽名:對象
ToPrimitive (input,PreferredType?)ip
可選參數 PreferredType 能夠是 Number 或者 String,它只表明了一個轉換的偏好,轉換結果不必定必須是這個參數所指的類型,但轉換結果必定是一個原始值。若是 PreferredType 被標誌爲 Number,則會進行下面的操做來轉換輸入的值(59.1):字符串
若是 PreferredType 被標誌爲 string,則轉換操做的第二步和第三步的順序會調換。若是沒有 PreferredType 這個參數,則 preferredrype 的值會按照這樣的規則來自動設置:Date 類型的對象會被設置爲 string,其它類型的值會被設置爲 Number.input
下面的表格解釋了 ToNumber()是如何將原始值轉換成數字的。string
參數 | 結果 |
---|---|
undefined | NaN |
null | +0 |
布爾值 | true 被轉換爲 1, false 轉換爲+0 |
數字 | 無需轉換 |
字符串 | 由字符串解析爲數字。例如,"324"被轉換爲 324 |
若是輸入的值是一個對象,則會首先會調用 roPrimitive (obj, Number)將該對象轉換爲原始值,而後在調用 roNumber()將這個原始值轉換爲數字。it
下面的表格解釋了 ToString()是如何將原始值轉換成字符串的。table
參數 | 結果 |
---|---|
undefined | "undefined" |
null | "null" |
布爾值 | 「true"或者"false" |
數字 | 數字做爲字符串,好比。"1.765*" |
字符串 | 無需轉換 |
若是輸入的值是一個對象,則會首先會調用 toPrimitive (obj,String)將該對象轉換爲原始值,而後再調用 roString()將這個原始值轉換爲字符串。方法