JavaScript 中的反引號呼叫函數:揭秘標記範本
執行包含反引號的JavaScript 程式碼(例如console.log1`)時,一些用戶遇到意外的輸出。此行為源自於 ES-6 中的標記模板,它允許自訂字串操作。
理解標記範本
標記範本是前面帶有特殊函數的範本文字,例如控制台.日誌。這些函數接收模板字串的解析值及其原始的未解析對應值。
對於 console.log1,標籤函數是 console.log。它接受兩個參數:strings(字串文字數組)和values`(插值數組)。
輸出說明
當console.log1`執行後,JavaScript 引擎將 ES6 程式碼轉換為 ES5。轉譯後的程式碼類似於以下:
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
這裡,_taggedTemplateLiteralLoose 是一個轉譯函數,它將原始字串文字指派給字串陣列的 raw 屬性。
標記的範本文字,因此,傳回一個結構如下的陣列:
["1", { raw: ["1"] }]
當這個陣列被傳遞給console.log會記錄數組本身,從而產生觀察到的輸出:
["1", { raw: ["1"] }]
標記模板的優點
標記模板與傳統字串操作相比具有多個優點方法:
以上是反引號如何影響 JavaScript 函數呼叫以及什麼是標記模板?的詳細內容。更多資訊請關注PHP中文網其他相關文章!