javascript console.log 'raw' 的新功能?
javascript console.log new feature with 'raw'?
遇到过这个例子,完全迷路了...
const test = (hey) => console.log(hey);
console.log(test `wtf`);
首先这一切都是有效的,在console.log看来是
["wtf", raw: Array[1]]
好像函数已经执行了,而且还有额外的raw
?有人可以解释一下吗?
只是一个Tagged Template Literal。它看起来很花哨,但没有什么特别之处。请注意,它们是 ES6/ES2015 的一部分,因此如果您计划支持旧版浏览器,则需要转载它们。
Template literals are string literals allowing embedded expressions. You can use multi-line strings and string interpolation features with them. They were called "template strings" in prior editions of the ES2015 / ES6 specification.
感谢@karmuran 和@deceze
原始字符串
特殊的原始 属性,可用于标记模板文字的第一个函数参数,允许您在输入原始字符串时访问它们。
function tag(strings, ...values) {
console.log(strings.raw[0]);
// "string text line 1 \n string text line 2"
}
tag`string text line 1 \n string text line 2`;
遇到过这个例子,完全迷路了...
const test = (hey) => console.log(hey);
console.log(test `wtf`);
首先这一切都是有效的,在console.log看来是
["wtf", raw: Array[1]]
好像函数已经执行了,而且还有额外的raw
?有人可以解释一下吗?
只是一个Tagged Template Literal。它看起来很花哨,但没有什么特别之处。请注意,它们是 ES6/ES2015 的一部分,因此如果您计划支持旧版浏览器,则需要转载它们。
Template literals are string literals allowing embedded expressions. You can use multi-line strings and string interpolation features with them. They were called "template strings" in prior editions of the ES2015 / ES6 specification.
感谢@karmuran 和@deceze
原始字符串
特殊的原始 属性,可用于标记模板文字的第一个函数参数,允许您在输入原始字符串时访问它们。
function tag(strings, ...values) {
console.log(strings.raw[0]);
// "string text line 1 \n string text line 2"
}
tag`string text line 1 \n string text line 2`;