JavaScript 中的反引號和函數呼叫
當在JavaScript 中使用反引號() 包裝文字時,您可能會在字串遇到意外行為,例如被呼叫的標記模板。在本例中,console.log1 導致輸出「console.log1`nVM12380:2 ["1", raw: Array[1]]"。
ES6 中的標記模板
解釋在於 ES6 中引入的標記模板的概念。標記模板可讓您使用函數標記模板字串。當字串與函數一起使用時,函數會接收模板字串的解析值以及字串中的值。
函數作為標籤
中提供的範例中,console.log 用作標記函數。它是透過解析的字串值和作為數組的文字字串值有效地調用的。然後函數可以操作這些值並傳回一個新字串或將它們傳遞以進行進一步處理。
傳回陣列
console.log 函數不會執行任何特殊運算對值進行處理,因此它會傳回包含文字字串值的陣列。然後,console.log 會列印出該數組,從而產生您觀察到的輸出。
轉譯和模板文字
當使用現代JavaScript 功能(如模板文字與舊版本)時瀏覽器、Babel 或類似的轉譯器用於將代碼轉換為這些瀏覽器支援的ES5。此範例的轉譯程式碼為:
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
此轉譯程式碼建立一個包含文字字串「1」的數組,並將其作為參數傳遞給 console.log。
因此,反引號符號 1 正在呼叫 console.log 作為標記模板函數,該函數傳回一個數組,然後將其列印出來。傳回數組中的原始屬性包含文字字串值。
以上是為什麼 JavaScript 中 `console.log\\`1`` 回傳一個陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!