物件的隱式轉換
-
只有在 JavaScript 運算式或陳述句中需要用到數字或字串時,物件才被隱式轉換, 當需要將物件轉換成數字時,需要以下三個步驟:
-
呼叫 valueOf(),如果結果是原始值(不是一個物件),則將其轉換為一個數字,
否則,呼叫 toString() 方法,如果結果是原始值,則將其轉換為一個數字,
否則,拋出一個型別錯誤,
第一步示例:
> 3 * { valueOf: function () { return 5 } }
15
- 第三步示例:
> function returnObject() { return {} }
> 3 * { valueOf: returnObject, toString: returnObject }
TypeError: Cannot convert object to primitive value
- 如果把物件轉換成字串時,則轉換操作的第一步和第二步的順序會調換: 先嘗試 toString() 進行轉換,如果不是原始值,則再嘗試使用 valueOf(),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/239004.html
標籤:其他
上一篇:TS vs JS基礎型別
下一篇:TS 變數宣告
