В чем разница между "и" в JavaScript? - PullRequest
65 голосов
/ 03 июня 2009

Я видел этот вопрос и мне интересно то же самое в JavaScript.

Если вы используете символ или символ "при создании строк в JavaScript, приложение, похоже, ведет себя одинаково. Так в чем же разница между этими двумя символами?

Единственное преимущество, которое я видел при использовании 'для построения строк, это то, что я могу делать что-то вроде:

var toAppend = '<div id="myDiv1"></div>';

Вместо:

var toAppend = "<div id=\"myDiv1\"></div>";

Есть ли какая-то существенная разница между ними, о которой я должен знать?

Ответы [ 8 ]

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

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

43 голосов
/ 12 июня 2012

Хотя технически это не различие в Javascript, стоит отметить, что строки в одинарных кавычках не являются допустимыми JSON как таковые. Я думаю, что люди автоматически предполагают, что, поскольку JSON является действительным JS, допустимые строки JS также являются действительными JSON, , что не обязательно является истинным .

Например, {'key': 'Some "value"'} не является допустимым JSON, тогда как {"key": "Some 'value'"} является.

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

Нет никакой разницы. Причина его существования именно то, что вы упомянули

4 голосов
/ 21 июня 2013

Хорошая практика, согласно Mozilla, заключается в использовании «» в HTML (где «нельзя использовать») при резервировании «» в Javascript (где «» и «» могут использоваться безразлично) ...

2 голосов
/ 17 февраля 2011

Я думаю, что есть другая разница. Если вы делаете следующее

var str1 = 'The \' character';
var str2 = 'The " character';
var str3 = "The ' character";
var str4 = "The \" character";
document.write (str1.replace("'","%26");
document.write (str2.replace('"',"%22");
document.write (str3.replace("'","%26");
document.write (str4.replace('"',"%22");

Document.write завершится ошибкой для str1 и str4. В этом разница, но я не знаю, есть ли обходной путь, чтобы заставить их работать.

0 голосов
/ 11 января 2019

Как написано выше, нет никакой разницы, но для ситуации вам нужно использовать "/ 'внутри строки.

Я думаю, что лучшей практикой для ситуации, когда вам нужно объединять строки с переменными, является использование строк шаблона: Price: ${price}, Amount: ${amount}. Total: ${price*amount}

Таким образом вы можете добавлять "и" и объединять переменные.

Гораздо легче читать, гораздо легче писать.

0 голосов
/ 11 июня 2018

ВНИМАНИЕ !!!!

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

Пример:

//WILL NOT WORK
var array = ["apple","orange","banana"];

array.push('pear');

//WILL WORK
var array = ["apple","orange","banana"];

array.push("pear");
0 голосов
/ 02 июня 2018

Попробуйте это:

console.log("mama+"mama"")

Output : Uncaught SyntaxError: missing ) 
after argument list

Теперь попробуйте:

console.log('mama+"mama"')

Output :  mama+"mama"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...