Разница между одинарными и двойными кавычками в Javascript

Я знаю, что в PHP единственная разница между двойными кавычками и одинарными кавычками - это интерпретация переменной внутри строки и обработка escape-символов.

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


person Michael Lumbroso    schedule 30.06.2010    source источник
comment
Двойные кавычки требуют нажатия клавиши Shift. Огромная экономия энергии за счет использования одинарных кавычек. :)   -  person MatrixFrog    schedule 01.09.2010
comment
@MatrixFrog Есть много других клавиатур, на которых вам нужно нажимать Shift для них обоих, например, в Германии, Венгрии, Австрии и т. Д.   -  person totymedli    schedule 19.08.2013
comment
Ну, на самом деле мне нужно нажимать shift для одинарных кавычек, но не для двойных кавычек (большинство турецких клавиатур Q). И я злоупотребляю этим, используя двойные кавычки в PHP и JavaScript, за исключением случаев, когда одинарные кавычки требуются / лучше.   -  person Halil Özgür    schedule 24.12.2013


Ответы (6)


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

Однако обратите внимание, что JSON (нотация объектов JavaScript) поддерживает только строки с двойными кавычками.

person karim79    schedule 30.06.2010
comment
Можете ли вы объяснить, когда использовать двойные кавычки и одинарные кавычки? Есть ли разница между этими двумя $ ([href $ = '. Jpg']), $ ('[href $ =. Jpg]') - person Anshu; 21.11.2012
comment
@Anshu, карим сказал: «или наоборот» ... Итак, он говорит, что его используют в ОБЕИХ случаях, подобных тому, что вы заявили. - person Jude Duran; 06.06.2013
comment
@Anshu var answer = "It's alright"; // single quote inside double quotes var answer = "He is called 'Johnny'"; // single quotes inside double quotes var answer = 'He is called "Johnny"'; // double quotes inside single quotes - person broadband; 05.03.2015
comment
@Anshu "форма" состоит в том, что в выражениях jQuery используются одинарные кавычки, чтобы разрешить использование двойных кавычек в селекторе / выражении $('div[class^="example"]'). В текстовых строках используются двойные кавычки, поэтому можно использовать апострофы, "That's why." HTML-строки обычно используют одинарные кавычки по той же причине, что и jQuery, '<body class="example">'. JSON, написанный на Javascript, может использовать любой тип, поэтому двойные кавычки для текста и одинарные кавычки для HTML. - person Orwellophile; 16.06.2015
comment
... а программисты на C используют 'c' одинарные кавычки для символов, потому что так это делается в C. - person Orwellophile; 16.06.2015

В JSON есть разница - стандарт JSON указывает, что все пары ключ-значение должны быть заключены в двойные кавычки. (спасибо wulfgarpro в комментариях), поэтому я начал максимально использовать двойные кавычки, чтобы не делать ошибок при работе с JSON.

person Jesse Brown    schedule 01.07.2010
comment
Лично я считаю, что лучше не пытаться самостоятельно читать и писать JSON. Я всегда использую JSON.parse и JSON.stringify, поэтому я могу свободно использовать одинарные кавычки, двойные кавычки или даже не кавычки, не беспокоясь о том, что где-то возникнут ошибки синтаксического анализа. - person MatrixFrog; 01.09.2010
comment
Объясните, пожалуйста, разницу в JSON? - person staticboy; 09.10.2012
comment
@staticboy - Стандарт JSON указывает, что все пары ключ-значение должны быть заключены в двойные кавычки. - person wulfgarpro; 23.12.2012
comment
Только если вы пишете RAW JSON. Если вы пишете объект Javascript, {key: 'value'} работает точно так же, как {"key": "value"}, и его гораздо быстрее набирать. - person Orwellophile; 16.06.2015
comment
Вызов необработанного JSON является избыточным. Это либо JSON, либо нет. - person Ben Aston; 22.11.2015
comment
Я думаю, они имеют в виду необработанный JSON как запись самой строки JSON. JSON.stringify принимает объект Javascript и превращает его в JSON - person Paul Stelian; 23.06.2018

Абсолютно никакой разницы. БЕСПЛАТНОЕ ЦИТАТИРОВАНИЕ YEEHHAAA

person jAndy    schedule 30.06.2010
comment
Цель программирования +1 - простая как краткость. - person Callat; 06.05.2016

В отличие от PHP, для которого использование двойных или одинарных кавычек меняет способ интерпретации строки, в ECMAScript нет никакой разницы в двух синтаксисах. Строка, использующая двойные кавычки, точно такая же, как и строка, состоящая из одинарных кавычек. Однако обратите внимание, что строка, начинающаяся с двойной кавычки, должна заканчиваться двойной кавычкой, а строка, начинающаяся с одинарной кавычки, должна заканчиваться одинарной кавычкой.

Николас Закас - профессиональный JavaScript для веб-разработчиков

person Alex.K.    schedule 20.08.2013

Они одинаковы, я обычно использую одинарные кавычки, но это потому, что я разработчик .net и, в частности, asp.net, поэтому это помогает мне различать 2 типа строк.

person Pharabus    schedule 30.06.2010
comment
Наверное, потому что он ненавидит ASP.Net-knuckle- - person ᆼᆺᆼ; 02.04.2012

Я просто нашел разницу. Я делаю мобильный веб-сайт, но в основном тестировал настольный Firefox. Это отлично работает в Firefox:

var searchArray = searchValue.split(' '); // Split a string at the spaces.

НО ... он не работает в мобильном Safari (iPhone 3GS с iOS 6.1). Чтобы он работал в мобильном Safari, вы должны использовать двойные кавычки:

var searchArray = searchValue.split(" "); // Split a string at the spaces.

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

person Sam    schedule 31.01.2013
comment
К вашему сведению: я тестировал iPhone 5 / iOS 6.1 и не обнаружил этой проблемы. - person DG.; 04.02.2013
comment
Очень маловероятно, что это правда. В противном случае много веб-страниц будет повреждено на iOS. - person JJJ; 26.03.2013