JavaScript ES6字符串模板语法的一个混乱示例
我已经从一些JavaScript ES6字符串模板语法的一个混乱示例,javascript,ecmascript-6,Javascript,Ecmascript 6,我已经从一些JavaScript/Node.js项目中阅读了一些代码(似乎是ES6),我对语法感到困惑: var c = ` export const imports = () => { const mods = [] ${files.map((v) => ` ['1234', 333] `)} return Promise.all(mods) } export default imports ` 这会给我 > c '\n
JavaScript/Node.js
项目中阅读了一些代码(似乎是ES6),我对语法感到困惑:
var c = `
export const imports = () => {
const mods = []
${files.map((v) => `
['1234', 333]
`)}
return Promise.all(mods)
}
export default imports
`
这会给我
> c
'\n export const imports = () => {\n const mods = []\n \n[\'1234\', 333]\n,\n[\'1234\', 333]\n\n return Promise.all(mods)\n }\n export default imports\n '
如果在Node.js中运行
我猜这是一个多行字符串,我试过:
var s = `
some multiline
indented string`
['1234', 333]
`another multiline
indented string
`
但我有三个条款:
> var s = `
... some multiline
... indented string`
undefined
> ['1234', 333]
[ '1234', 333 ]
> `another multiline
... indented string
... `
'another multiline\n indented string\n '
有人能帮我学语法吗?它使用哪种ECMAScript规范?希望有人能给我特定规范锚的链接。这是一个示例
请注意${…}中的部分是字符串插值——在本例中令人困惑的是,插值本身(下面的代码)包含一个文本字符串
files.map((v) => `
['1234', 333]
`)
你的<代码> var s<代码>无效(你的意思是从中间的后端逃出,或者用分号,或某物?)它是有效的。唯一的问题是var s=''语句会将valud分配给s变量,并且语句本身不会返回任何未定义的内容,所以会打印。这是模板文本。其中${}可用于执行任何字符串替换。