ES2015 Babel 字符串插值不适用于撇号(但适用于双引号)
ES2015 Babel String Interpolation not working with apostrophe (but does with double quotes)
我正在使用 babel / grunt 学习一些 ES2015。
根据 this post,单引号和双引号在 Javascript 中没有真正的区别。即 'test' 和 "test".
虽然在尝试字符串插值时,babeljs 似乎存在问题(或者更可能是我)。请问下面的代码有什么问题吗?
根据 this document,似乎两者都应该有效。 Chrome 控制台中没有错误。
正在工作的 Js:
var name = "Bob", time = "today";
alert(`Hello ${name}, how are you ${time}?`);
转译为:
var name = "Bob",
time = "today";
alert("Hello " + name + ", how are you " + time + "?");
提供了预期的结果。
失败的 Js:
var forename = 'bob', surname = 'test';
alert('hello ${forename} ${surname} - how are you?');
转译为:
var forename = "bob",
surname = "test";
alert("hello ${forename} ${surname} - how are you?");
并提供以下输出:
你说的对,'
和"
在strings方面没有区别,但是为了做字符串插值,您必须在您的模板字符串周围使用反引号,例如:
ES2015
var forename = 'bob', surname = 'test';
alert(`hello ${forename} ${surname} - how are you?`);
结果 ES5
var forename = 'bob',
surname = 'test';
alert('hello ' + forename + ' ' + surname + ' - how are you?');
我正在使用 babel / grunt 学习一些 ES2015。
根据 this post,单引号和双引号在 Javascript 中没有真正的区别。即 'test' 和 "test".
虽然在尝试字符串插值时,babeljs 似乎存在问题(或者更可能是我)。请问下面的代码有什么问题吗?
根据 this document,似乎两者都应该有效。 Chrome 控制台中没有错误。
正在工作的 Js:
var name = "Bob", time = "today";
alert(`Hello ${name}, how are you ${time}?`);
转译为:
var name = "Bob",
time = "today";
alert("Hello " + name + ", how are you " + time + "?");
提供了预期的结果。
失败的 Js:
var forename = 'bob', surname = 'test';
alert('hello ${forename} ${surname} - how are you?');
转译为:
var forename = "bob",
surname = "test";
alert("hello ${forename} ${surname} - how are you?");
并提供以下输出:
你说的对,'
和"
在strings方面没有区别,但是为了做字符串插值,您必须在您的模板字符串周围使用反引号,例如:
ES2015
var forename = 'bob', surname = 'test';
alert(`hello ${forename} ${surname} - how are you?`);
结果 ES5
var forename = 'bob',
surname = 'test';
alert('hello ' + forename + ' ' + surname + ' - how are you?');