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中文网其他相关文章!