ТЛ; др
Используйте строковые литералы шаблона ECMAScript 2015, если применимо.
Объяснение
Нет прямого способа сделать это, согласно спецификациям ECMAScript 5, но ECMAScript 6 имеет шаблонные строки , которые также были известны как квази-литералы во время составления проекта спекуляция Используйте их так:
> var n = 42;
undefined
> `foo${n}bar`
'foo42bar'
Вы можете использовать любое допустимое выражение JavaScript внутри {}
. Например:
> `foo${{name: 'Google'}.name}bar`
'fooGooglebar'
> `foo${1 + 3}bar`
'foo4bar'
Другая важная вещь - вам больше не нужно беспокоиться о многострочных строках. Вы можете написать их просто как
> `foo
... bar`
'foo\n bar'
Примечание: Я использовал io.js v2.4.0 для оценки всех строк шаблона, показанных выше. Вы также можете использовать последнюю версию Chrome для тестирования приведенных выше примеров.
Примечание: ES6 Спецификации в настоящее время завершены , но еще не реализованы во всех основных браузерах.
Согласно страницам Mozilla Developer Network , это будет реализовано для базовой поддержки, начиная со следующих версий: Firefox 34, Chrome 41, Internet Explorer 12. Если вы Opera, Safari, или пользователь Internet Explorer, и ему любопытно узнать об этом этот тестовый стенд можно использовать, чтобы поиграть, пока все не получат поддержку.