Должен ли я использовать двойные или одинарные кавычки для цитирования строк, если я хочу быть согласованным на нескольких языках? - PullRequest
4 голосов
/ 12 апреля 2009

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

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

Я хотел бы выбрать один, а затем иметь возможность использовать его на нескольких языках программирования, причем это означает одно и то же (если это возможно).

Ответы [ 8 ]

8 голосов
/ 12 апреля 2009

Во многих языках сценариев и оболочек существует значительная разница между двойными и одинарными кавычками. Например, в Perl и во многих оболочках Unix, когда вы используете двойные кавычки, интерпретатор проанализирует вашу строку и попытается сделать любые замены для любых переменных в строке. Если вы используете одинарные кавычки, интерпретатор не будет пытаться делать что-то необычное со строкой; это будет трактоваться как обычный литерал.

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

Каждый язык может относиться к кавычкам по-разному. Я думаю, что в Javascript может не иметь значения, какой из них вы используете, но было бы лучше провести некоторое исследование лучших практик, а затем просто выбрать одну методологию и быть последовательным. Я видел несколько примеров, когда человек решил использовать двойные кавычки в HTML и одинарные в Javascript, но я не уверен, что это «стандарт».

6 голосов
/ 12 апреля 2009

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

3 голосов
/ 12 апреля 2009

Лично я по умолчанию использую двойные кавычки; это не столько вопрос «межъязыковой согласованности», сколько отсутствие необходимости думать.

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

Конечно, если вы собираетесь обработать строку каким-либо образом (расширение встроенной переменной, экранированные символы или что-то еще), вам нужно подумать и использовать все, что подходит для используемого вами языка.

Но для более чем 90% случаев, когда "это просто строка, черт возьми", двойные кавычки делают свое дело почти везде - по крайней мере, для языков, которые я использую. Я знаю, что это мелочь, но мне нужно подумать об этом еще меньше.

2 голосов
/ 12 апреля 2009

В некоторых языках сценариев (например, shell, Perl, Ruby и PHP) строки в одинарных кавычках не поддерживают экранирование символов (за исключением некоторых языков для экранирования символов кавычек и обратной косой черты) и интерполяции переменных. Строки в двойных кавычках поддерживают оба.

Пример в Perl:

my $name = 'Barney';
print "Hello, $name\n";   # "Hello, Barney" (followed by newline)
print 'Hello, $name\n';   # "Hello, $name\n"

Итак, если вы хотите, чтобы ваш JavaScript соответствовал вышеприведенному, вы, вероятно, захотите использовать строки в одинарных кавычках - но символьные экранирования все еще поддерживаются в строках в одинарных кавычках в JS, но не в другие языки, упомянутые выше.

2 голосов
/ 12 апреля 2009

обычно я использую двойные кавычки также в Javascript, потому что в большинстве языков, которые я обычно программирую, строки заключаются в двойные кавычки. в C / C ++, например, одинарные кавычки означают один символ.

1 голос
/ 12 апреля 2009

Если вы намереваетесь передвигаться по нескольким языкам, то слишком удобное общение с одним или другим может быть непродуктивным. Я делаю большую часть моей разработки на C # (строки в двойных кавычках), но иногда переключаюсь обратно на Delphi для Win32 (строки в одинарных кавычках). Чем дольше я был вдали от Delphi, тем больше ошибок я делаю. Как ни странно, когда я работаю с обоими языками одновременно, это немного проще!

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

0 голосов
/ 03 июня 2009

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

0 голосов
/ 12 апреля 2009

Значение кавычек очень зависит от языка. Некоторые языки также позволяют вам использовать `` (backquotes) to mean something completely different from the regular 'and "` кавычки.

...