Попытка использовать тегированные строки шаблона приводит к 'Uncaught SyntaxError: Неожиданный токен'
Я использую помеченные строки шаблона в следующем коде
var a = 5;
var b = 10;
var pp="";
function tag(strings, ...values) {
pp+=strings[0]; // "Hello "
pp+=strings[1]; // " world "
pp+=values[0]; // 15
pp+=values[1]; // 50
console.log(pp+"Bazinga!");
}
tag`Hello ${ a + b } world ${ a * b}`;
но это дает
Uncaught SyntaxError: Неожиданный токен...(…)
На function tag(strings, ...values) {
1 ответ
Решение
Как синтаксическая ошибка Unexpected token ...
говорит вам, что проблема не в теге, а в использовании оператора rest. Попробуйте следующее:
var a = 5,
b = 10;
function tag(strings) {
var pp="";
pp+=strings[0]; // "Hello "
pp+=strings[1]; // " world "
pp+=arguments[1]; // 15
pp+=arguments[2]; // 50
return pp+"Bazinga!";
}
console.log(tag`Hello ${ a + b } world ${ a * b}`);
В соответствии с таблицей совместимости ES6 необходимо включить синтаксис отдыха с помощью флага гармонии в текущем Chrome.