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