gpt4 book ai didi

javascript - 反引号 (`…` ) 在 JavaScript 中调用函数

转载 作者:IT王子 更新时间:2023-10-29 02:50:59 26 4
gpt4 key购买 nike

我不确定如何解释这一点,但是当我运行时

console.log`1`

在谷歌浏览器中,我得到类似的输出

console.log`1`
VM12380:2 ["1", raw: Array[1]]

为什么反引号会调用log函数,为什么会做raw: Array[1]的索引?

Catgocat 在 JS 室中提出的问题,但除了关于 templating strings 的内容外,没有任何答案有意义。这并不真正符合发生这种情况的原因。

最佳答案

它在 ES-6 中被称为标记模板 更多可以阅读关于它们的信息 Here有趣的是,我在聊天的加星标部分找到了链接。

但是代码的相关部分在下面(您基本上可以创建过滤排序)。

function tag(strings, ...values) {
assert(strings[0] === 'a');
assert(strings[1] === 'b');
assert(values[0] === 42);
return 'whatever';
}
tag `a${ 42 }b` // "whatever"

基本上,它只是用 console.log 函数标记“1”,就像它对任何其他函数所做的那样。标记函数接受模板字符串的解析值和可以执行进一步任务的值。

Babel 将上面的代码转译为

var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };

console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));

正如您在上面的示例中看到的,在被 babel 转译后,标记函数 (console.log) 被传递给以下 es6->5 转译代码的返回值。

_taggedTemplateLiteralLoose( ["1"], ["1"] );

这个函数的返回值被传递给 console.log 然后打印数组。

关于javascript - 反引号 (`…` ) 在 JavaScript 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29660381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com