2009-06-03 8 views
52

j'ai vu this question et je me demande la même chose en JavaScript.Quelle est la différence entre « et" en JavaScript?

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

L'avantage que je l'ai vu en utilisant 'pour construire des chaînes est que je peux faire des choses comme:

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

Au lieu de:

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

est entre eux il y a une différence significative que je devrait être au courant de?

Répondre

63

Ils sont équivalents à toutes fins utiles. Si vous voulez utiliser l'un ou l'autre dans une chaîne, c'est une bonne idée d'utiliser l'autre pour créer la chaîne, comme vous l'avez noté. À part ça, c'est pareil.

17

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

-1

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

2

Je pense qu'il ya une autre différence. Si vous procédez comme 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 pour les faire fonctionner.

+1

Dans quel navigateur ces document.writes échouent-ils? Je n'ai pas réussi à les faire échouer. (Une fois que j'ai mis assez de crochets de fermeture dans ce code) –

33

Bien qu'il ne soit pas techniquement une différence dans Javascript, il vaut la peine de noter que les chaînes entre guillemets simples sont not valid JSON, en soi. Je pense que les gens supposent automatiquement que JSON est valide JS, que les chaînes JS valides sont également valides JSON, which isn't necessarily true.

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

2

bonnes pratiques, selon Mozilla, est d'utiliser « » en HTML (où « » ne peut pas être utilisé) tout en réservant « » en Javascript (où les deux « » et « » peut être utilisé indifféremment) ...

+0

Les guillemets simples peuvent être utilisés en HTML: http://stackoverflow.com/questions/273354/are-single-quotes-allowed-in-html –

+0

Oui, selon la norme , mais "certains clients HTML (navigateurs non nécessaires) ont des problèmes de compatibilité sur les guillemets simples" ... Par conséquent, je suggère de suivre les directives de Mozilla. – davidbourguignon

Questions connexes