JavaScript позволяет использовать либо одинарные (''
), либо двойные кавычки (""
) для создания строковых литералов.
Оба обладают одинаковыми качествами
Они по сути одинаковы.
console.log('abc' === "abc"); // true
Строка с одинарными кавычками может содержать двойные кавычки без необходимости их экранирования.
console.log('Single quotes with a double ( " ) quote in the middle.');
Строка с двойными кавычками может иметь одинарные кавычки, не экранируя их.
console.log("Double quotes with a single ( ' ) quote in the middle.");
Каждый тип должен экранировать свой собственный тип.
console.log('single quotes ( \' ) must escape a single quote'); console.log("double quotes ( \" ) must escape a double quote");
Плюсы использования одинарных кавычек
Одним из популярных аргументов в пользу одинарных кавычек является необходимость писать html в JavaScript.
Если вы используете одинарные кавычки, вы можете написать следующее.
const html = '<div id="some_div"></div>';
Если вы используете двойные кавычки, вы должны избегать каждого вложенного "
const html = "<div id=\"some_div\"></div>";
что может раздражать, или вы можете использовать одинарные кавычки в строке html.
Плюсы использования двойных кавычек
Помните, что JSON допускает только двойные кавычки.
{ "in_json": "You use only double quotes." }
Одиночные кавычки встречаются чаще
Несколько репозиториев популярных проектов JavaScript показывают, что одинарные кавычки предпочтительнее двойных.
+------------+----------------------------------+ | Projects | Dominant of Single Quotes | +------------+----------------------------------+ | async | Single-Quotes ('') 76% of quotes | | express | Single-Quotes ('') 92% of quotes | | lodash | Single-Quotes ('') 73% of quotes | | request | Single-Quotes ('') 97% of quotes | | underscore | Single-Quotes ('') 78% of quotes | | angular | Single-Quotes ('') 58% of quotes | | react | Single-Quotes ('') 52% of quotes | +------------+----------------------------------+
Вы можете видеть, что внешние библиотеки (React, Angualar) имеют больше двойных кавычек, чем другие библиотеки, что может быть связано с наличием фрагментов HTML.
Давайте взглянем на несколько руководств по стилю, примерно половина которых рекомендует одинарные кавычки, а другая половина — двойные кавычки.
- gjslint (Google Closure Linter) предпочитает одинарные кавычки (
''
). - standard (пакет NPM) предпочитает одинарные кавычки (
''
). - jslint предпочитает двойные кавычки (
""
). - eslint предпочитает двойные кавычки (
""
). - Руководство по написанию кода для авторов TypeScript отдает предпочтение двойным кавычкам (
""
).
Резюме
Вы должны определить один стандартный стиль и придерживаться его. Я рекомендую одинарные кавычки (''
) как надежный и более распространенный стандарт.
В ES6 есть еще один вариант создания строковых литералов с помощью Шаблонных литералов.
использованная литература
- Переполнение стека: когда использовать двойные или одинарные кавычки в JavaScript?
- Переполнение стека: двойные кавычки против одинарных кавычек в JavaScript
- Переполнение стека: разница между одинарными и двойными кавычками в Javascript
Спасибо за прочтение ❤
Скажи привет! Твиттер | Гитхаб | ЛинкедИн | Фейсбук | Инстаграм