ES2015 Babel字符串插值无法使用撇号(但使用双引号)

Hoc*_*eyJ 15 javascript string-interpolation ecmascript-6 babeljs

我正在使用babel/grunt来学习一些ES2015.

根据这篇文章,单引号和双引号之间的Javascript没有真正的区别.即'测试'和"测试".

当尝试字符串插值时,似乎babeljs存在问题(或者更可能是 - 我).请问以下代码有什么问题?

根据这份文件,似乎两者都应该有效.Chrome控制台中没有错误.

工作Js:

var name = "Bob", time = "today";
alert(`Hello ${name}, how are you ${time}?`);
Run Code Online (Sandbox Code Playgroud)

透明至:

var name = "Bob",
    time = "today";
alert("Hello " + name + ", how are you " + time + "?");
Run Code Online (Sandbox Code Playgroud)

提供预期的结果.

失败的Js:

var forename = 'bob', surname = 'test';
alert('hello ${forename} ${surname} - how are you?');
Run Code Online (Sandbox Code Playgroud)

透明至:

var forename = "bob",
    surname = "test";
alert("hello ${forename} ${surname} - how are you?");
Run Code Online (Sandbox Code Playgroud)

并提供以下输出:

在此输入图像描述

Cod*_*gue 39

你说得对,没有不同之间'"当它涉及到的字符串,而是为了做串插,你必须使用你的周围模板字符串,如反引号:

ES2015

var forename = 'bob', surname = 'test';
alert(`hello ${forename} ${surname} - how are you?`);
Run Code Online (Sandbox Code Playgroud)

结果ES5

var forename = 'bob',
    surname = 'test';
alert('hello ' + forename + ' ' + surname + ' - how are you?');
Run Code Online (Sandbox Code Playgroud)

Babel REPL