Tag: 模板文字

ECMA脚本2015(ES6)在没有标志的NodeJS上

根据这篇文章 ,许多ES6function(特别是模板文字,在forms上被称为“模板string”)是默认启用的。 下面是进入terminal: user@host: node > "test string: ${10+4}" 'test string: ${10+4}' 即使使用'–harmony'标志,模板文字也不会作为代码被执行,而是被当作string处理。 我的版本如下: user@host: node -v v5.7.0 任何build议将不胜感激。

将cookie的值设置为模板文字?

我正在创build一个模板文字,如下所示: const someVar = 'hello' const str = ` Some random multiline string with string interpolation: ${someVar} ` 然后在我的Koa应用程序中,我正在做: this.cookies.set('str', str) 显然它不喜欢多行string,因为它给出了这个错误: TypeError:参数值无效 有没有办法解决? 保持空白格式对我来说是非常必要的。

多行模板string没有换行符?

我有这一行代码: console.log(`now running each hook with name '${chalk.yellow(aBeforeOrAfterEach.desc)}', for test case with name '${chalk.magenta(test.desc)}'.`); 问题是我必须把它放在我的IDE中的多行,因为它适合(我走100列)。 当我把模板string放在多行上时,模板string将其解释为换行符,这不是我想要的。 所以我的问题是 – 我怎么能有多行的模板string代码,而不必用新的行字符logging?

模板string作为对象属性名称

为什么JavaScript不允许模板string作为对象属性键? 例如,当我input: foo = {`bar`: 'baz'} 进入NodeJS REPL,它会抛出一个带有长堆栈跟踪的“Unexpected template string”的SyntaxError 。 属性值是好的,但是,这并不意外。 类似的错误发生在浏览器中,例如,Firebug抛出一个带有“无效属性ID”的SyntaxError 。 “计算属性名称”中允许使用模板string。 例如,这个编译在支持语法的所有浏览器中都完美无缺: var foo = { [`bar` + 1]: `baz` }; 并创build对象{"bar1": "baz"} 。 为什么模板string不允许作为文字对象键? 这是出于性能的原因? 模板string必须编译,可能在运行时(纠正我,如果我错了),这意味着每次遇到这个对象时,解释器将不得不计算对象名称。 考虑像“煮熟的”模板string这样的东西,看起来它可能会变慢,尽pipe从ES5开始就有了getter和setter。 Firefox并没有提到这是一个错误,这就是为什么我发现它意外。 在将来的某个时候会允许语法吗?