因此,我遇到了一个奇怪的问题,我在任何地方都找不到它的答案,而且当您传递给它字符串文本时,没有太多的文档记录它是做什么的。
如果我使用eval("alert(1)")
,我将得到一个带有1的警告框,然而,当我执行eval`alert(1)`
时,我只得到一个带有“警告(1)”的数组--我不知道它是从哪里来的,是不是应该与前面的示例一样处理呢?
另外,eval`${1}`
返回一个包含两个空元素的数组,为什么?
发布于 2020-03-14 20:41:58
您所遇到的是与标记模板有关的东西。
本质上,您正在进行字符串内插,并使用一个函数来决定如何创建字符串。第一个参数应该是包含所有字符串部分( ${var}
声明之间的所有内容)的${var}
。以这种方式使用的任何函数的返回都应该是字符串。您看到两个条目的原因是,除了尝试使用标记函数创建的格式之外,此函数还返回原始格式。
https://stackoverflow.com/questions/60687044
复制相似问题