7

我有遇到这样的例子,完全失去了...javascript console.log新功能'原始'?

const test = (hey) => console.log(hey); 

console.log(test `wtf`); 

首先这是有效的,在执行console.log,它似乎是

["wtf", raw: Array[1]] 

这就像函数被执行并额外加入raw?有人可以解释吗?

+0

'console.log(test“w ** f”); '? –

+1

https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/raw 我想这是字符串模板 –

+4

标记模板字符串:https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals – deceze

回答

5

这只是一个Tagged Template Literal。它看起来很花哨,但没有什么特别的。请注意,它们是ES6/ES2015的一部分,因此如果您计划支持旧版浏览器,则需要转换它们。

模板文字是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能。在ES2015/ES6规范的先前版本中,它们被称为“模板字符串”。