88 votes

Quelle est la difference entre 'et "en JavaScript?

J'ai vu cette question et je me demandais à propos de la même chose en JavaScript.

Si vous utilisez le caractère "ou le caractère" lors de la prise de chaînes de caractères en JavaScript, l'application semble se comporter de la même. Quelle est donc la différence entre ces deux personnages?

Le seul avantage que j'ai vu dans l'aide " pour construire des chaînes est ce que je peux faire des trucs comme:

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

Au lieu de:

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

Est-il une différence significative entre eux que je devrais être au courant?

109voto

Paolo Bergantino Points 199336

Ils sont équivalents à toutes fins utiles. Si vous souhaitez utiliser l'un ou l'autre dans une chaîne, il est judicieux d'utiliser l'autre pour créer la chaîne, comme vous l'avez indiqué. A part ça, c'est tout pareil.

55voto

Ben Roberts Points 8429

Bien qu'il ne s'agisse pas d'une différence technique en Javascript, il est intéressant de noter que les chaînes entre guillemets simples ne sont pas des JSON valides en soi. Je pense que les gens supposent automatiquement que, puisque JSON est un JS valide, les chaînes JS valides sont également un JSON valide, ce qui n'est pas nécessairement vrai .

Par exemple, {'key': 'Some "value"'} n'est pas un code JSON valide, alors que {"key": "Some 'value'"} est.

22voto

Philippe Leybaert Points 62715

Il n'y a pas de différence. La raison de son existence est exactement ce que vous avez mentionné

2voto

Pritesh Points 21

Votre exemple est le meilleur exemple pour décrire la différence entre les deux ....

2voto

shanmuk1729 Points 36

Je pense qu'il y a une autre différence. Si vous faites ce qui suit

 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");
 

Le document.write échouera pour str1 et str4. C'est la différence, mais je ne sais pas s'il existe une solution de contournement pour les faire fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X