Есть ли недостаток в использовании синтаксиса литералов шаблонов ES6 без шаблонного выражения?

javascript string ecmascript-6 template-literals

2340 просмотра

3 ответа

853 Репутация автора

Есть ли причина (производительность или другая) не использовать буквальный синтаксис шаблона backtick для всех строк в исходном файле javascript? Если так, то?

Должен ли я предпочесть это:

var str1 = 'this is a string';

через это?

var str2 = `this is another string`;
Автор: Joshua Breeden Источник Размещён: 12.06.2016 06:26

Ответы (3)


12 плюса

414405 Репутация автора

Решение

Наиболее существенная причина не использовать их заключается в том, что ES6 поддерживается не во всех средах.

Конечно, это может не повлиять на вас, но все же: ЯГНИ . Не используйте шаблонные литералы, если вам не нужны интерполяция, многострочные литералы или неэкранированные кавычки и апострофы. Большая часть аргументов из Когда использовать двойные или одинарные кавычки в JavaScript? перенести также. Как всегда, сохраняйте согласованность своей кодовой базы и используйте только один строковый литерал, где вам не нужен специальный стиль.

Автор: Bergi Размещён: 12.06.2016 08:45

-3 плюса

661 Репутация автора

Всегда используйте строковые литералы. В этом случае ЯГНИ не правильно. Вам это абсолютно необходимо. В какой-то момент вам нужно будет добавить переменную к вашей строке, после чего вам нужно будет либо заменить одинарные кавычки на обратные, либо использовать страшный '+'.

Автор: TigerBear Размещён: 01.08.2019 07:52

0 плюса

2168 Репутация автора

С точки зрения кода, особых недостатков нет. Механизмы JS достаточно умны, чтобы не иметь различий в производительности между строковым литералом и литералом шаблона без переменных.

На самом деле, я могу даже утверждать, что хорошо всегда использовать литералы шаблона:

  • Вы уже можете использовать одинарные или двойные кавычки для создания строк. Выбор, который является в значительной степени произвольным, и вы просто придерживаетесь одного. Тем не менее, рекомендуется использовать другую кавычку, если ваша строка содержит выбранный вами маркер строки, т. Е. Если вы выбрали ', вы все равно бы сделали "don't argue"вместо 'don\'t argue'. Однако обратные пометки очень редки в обычном языке и строках, так что вам на самом деле реже придется использовать другой строковый буквальный синтаксис или использовать escape-коды, что хорошо.

    Например, вы будете вынуждены использовать escape-последовательности, чтобы получить строку she said: "Don't do this!"с двойными или одинарными кавычками, но вам не придется это делать при использовании обратных галочек.

  • Вам не нужно конвертировать, если вы хотите использовать переменную в строке в будущем.

Однако это очень слабые преимущества. Но все же больше, чем ничего, поэтому я бы в основном использовал шаблонные литералы.

Реальное, но, на мой взгляд, игнорируемое возражение - это необходимость поддерживать среды, в которых строковые литералы не поддерживаются. Если у вас есть такие, вы бы знали и не задавали бы этот вопрос.

Автор: Timo Türschmann Размещён: 26.10.2019 09:56
Вопросы из категории :
32x32