почему " строка в одинарных кавычках предпочтительнее строки в двойных кавычках.- в js?


При использовании gjslint я получил подсказку: "строка в одинарных кавычках предпочтительнее строки в двойных кавычках".

Так почему же? Меня это немного смущает. Почему предпочтение отдается одинарным кавычкам?

Надеюсь получить некоторую помощь. Спасибо всем.

4 16

4 ответа:

Это просто чье-то мнение.

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

Даже в руководстве по стилю Google JavaScript говорится, что одинарные кавычки предпочтительны без указания веской причины:

"для согласованности одинарные кавычки (' ) предпочтительнее двойных кавычек ("). Это полезно при создании строк, содержащих HTML "

(далее приводится очень короткий пример строки, которая даже не содержит HTML.)

Многие люди, похоже, считают, что XHTML допустим только с двойными кавычками, но это не так: спецификация XHTML допускает и то, и другое. (Сказав это, 98% XML, который я запустил во всем, включая XHTML, использует двойные кавычки.)

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

UPDATE: только что вспомнил, что JSON допустим только с двойными кавычками. Очевидно, что JSON-это не JavaScript, но все же это причина, по которой (a) некоторые могут предпочесть двойные кавычки в своем JavaScript, поэтому эти объектные литералы выглядят как JSON, и (b) некоторые могут предпочесть одинарные кавычки, чтобы они могли вручную кодировать JSON без необходимости экранировать двойные кавычки. (Нет, я не рекомендую вручную кодировать JSON, но я видел, как это делается.)

Если вы используете одинарные кавычки,вам не нужно экранировать двойные кавычки в вашем html.

Например...

С помощью одинарных кавычек вы можете сделать это

var a = '<a href="something.html" rel="yes" title="whatever">a link/a>';

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

var a = "<a href=\"something.html\" rel=\"yes\" title=\"whatever\">a link/a>";

Гораздо больше работы, труднее поддерживать и легче совершать ошибки.

На моей клавиатуре есть клавиша'/", поэтому я могу легко ввести одинарную кавычку, но для двойной кавычки нужно нажать shift. :)

Что касается предупреждений JSLint, то он просто пытается навязать произвольный стандарт, чтобы продвигать более согласованный стиль кодирования, как и в других вопросах интервалов и отступов.

С точки зрения производительности, в соответствии с http://jsperf.com Вы получаете почти одинаковую производительность для обоих в одних браузерах, в других вы получаете одинаковую производительность.

В jsperf существует множество тестов, и все они дают почти одинаковый результат:

В заключение я думаю, что использование одинарных или двойных кавычек-это просто вопрос вкуса, а не производительности.

С уважением.