為什么下面的代碼在語法上是正確的?
let v = ``(oldVal-newVal) / 1000;
它給出了以下運行時錯誤:
Uncaught TypeError: "" is not a function
我的猜測是 `` 成為標記模板,而 "" 將是標記名稱,但不確定。(我是通過不小心輸入它而不是 VSCode 中的 Ctrl ` 快捷方式來做到這一點的。花了一天時間才找到它。;)
uj5u.com熱心網友回復:
標記模板采用以下形式:
function myTaggedTemplate(...) { }
并被呼叫:
myTaggedTemplate`...`
左邊有一個參考函式的變數名,右邊有一個模板字串。
你所擁有的相當于:
const left = ``;
left(oldVal-newVal);
它會出現“不是函式”的錯誤,因為它是一個字串,而不是一個函式。
它在語法上是有效的,因為您可以嘗試將任何運算式的結果視為函式。在運行時確定它是否是一個函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/427997.html
標籤:javascript 模板 文字
上一篇:傳遞引數包重復運行
