Есть ли недостаток в использовании синтаксиса литералов шаблонов ES6 без шаблонного выражения?
2340 просмотра
3 ответа
Есть ли причина (производительность или другая) не использовать буквальный синтаксис шаблона backtick для всех строк в исходном файле javascript? Если так, то?
Должен ли я предпочесть это:
var str1 = 'this is a string';
через это?
var str2 = `this is another string`;
Автор: Joshua Breeden
Источник
Размещён: 12.11.2019 09:53
Ответы (3)
12 плюса
Наиболее существенная причина не использовать их заключается в том, что ES6 поддерживается не во всех средах.
Конечно, это может не повлиять на вас, но все же: ЯГНИ . Не используйте шаблонные литералы, если вам не нужны интерполяция, многострочные литералы или неэкранированные кавычки и апострофы. Большая часть аргументов из Когда использовать двойные или одинарные кавычки в JavaScript? перенести также. Как всегда, сохраняйте согласованность своей кодовой базы и используйте только один строковый литерал, где вам не нужен специальный стиль.
Автор: Bergi Размещён: 12.06.2016 08:450 плюса
С точки зрения кода, особых недостатков нет. Механизмы JS достаточно умны, чтобы не иметь различий в производительности между строковым литералом и литералом шаблона без переменных.
На самом деле, я могу даже утверждать, что хорошо всегда использовать литералы шаблона:
Вы уже можете использовать одинарные или двойные кавычки для создания строк. Выбор, который является в значительной степени произвольным, и вы просто придерживаетесь одного. Тем не менее, рекомендуется использовать другую кавычку, если ваша строка содержит выбранный вами маркер строки, т. Е. Если вы выбрали
'
, вы все равно бы сделали"don't argue"
вместо'don\'t argue'
. Однако обратные пометки очень редки в обычном языке и строках, так что вам на самом деле реже придется использовать другой строковый буквальный синтаксис или использовать escape-коды, что хорошо.Например, вы будете вынуждены использовать escape-последовательности, чтобы получить строку
she said: "Don't do this!"
с двойными или одинарными кавычками, но вам не придется это делать при использовании обратных галочек.- Вам не нужно конвертировать, если вы хотите использовать переменную в строке в будущем.
Однако это очень слабые преимущества. Но все же больше, чем ничего, поэтому я бы в основном использовал шаблонные литералы.
Реальное, но, на мой взгляд, игнорируемое возражение - это необходимость поддерживать среды, в которых строковые литералы не поддерживаются. Если у вас есть такие, вы бы знали и не задавали бы этот вопрос.
Автор: Timo Türschmann Размещён: 26.10.2019 09:56-3 плюса
Всегда используйте строковые литералы. В этом случае ЯГНИ не правильно. Вам это абсолютно необходимо. В какой-то момент вам нужно будет добавить переменную к вашей строке, после чего вам нужно будет либо заменить одинарные кавычки на обратные, либо использовать страшный '+'.
Автор: TigerBear Размещён: 01.08.2019 07:52Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- string В чем разница между строкой и строкой в ??C #?
- string Почему в Ruby нет реального StringBuffer или StringIO?
- string Преобразовать строку в перечисление в C #
- string Преобразование списка <Integer> в список <String>
- string Самый эффективный способ объединения строк?
- ecmascript-6 What's the difference between using "let" and "var" to declare a variable in JavaScript?
- ecmascript-6 Конечно, у ES6 + должен быть способ объединить два объекта javascript вместе, что это?
- ecmascript-6 Расширяющий класс JavaScript
- ecmascript-6 Что делают фигурные скобки в выражениях `var {...} = ...`?
- ecmascript-6 let keyword in the for loop
- template-literals Обратные вызовы вызова функции
- template-literals Строка шаблона как имя свойства объекта
- template-literals ES6: неправильная escape-последовательность символов, создающая строку ASCII
- template-literals ECMA Script 2015 (ES6) на NodeJS без флагов
- template-literals Как вложить шаблоны строк в ES6?