Je voudrais dire que la différence est purement stylistique, mais j'ai vraiment des doutes. Prenons l'exemple suivant:
/*
Add trim() functionality to JavaScript...
1. By extending the String prototype
2. By creating a 'stand-alone' function
This is just to demonstrate results are the same in both cases.
*/
// Extend the String prototype with a trim() method
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
// 'Stand-alone' trim() function
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
};
document.writeln(String.prototype.trim);
document.writeln(trim);
Dans Safari, Chrome, Opera et Internet Explorer (testé dans IE7 et IE8), cela renverra les éléments suivants:
function () {
return this.replace(/^\s+|\s+$/g, '');
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
Cependant, Firefox donnera un résultat légèrement différent:
function () {
return this.replace(/^\s+|\s+$/g, "");
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, "");
}
Les guillemets simples ont été remplacés par des guillemets doubles. (Notez également comment l'espace d'indentation a été remplacé par quatre espaces.) Cela donne l'impression qu'au moins un navigateur analyse JavaScript en interne comme si tout avait été écrit à l'aide de guillemets doubles. On pourrait penser, cela prend moins de temps à Firefox pour analyser JavaScript si tout est déjà écrit selon cette «norme».
Ce qui, en passant, fait de moi un panda très triste, car je pense que les guillemets simples sont beaucoup plus agréables dans le code. De plus, dans d'autres langages de programmation, ils sont généralement plus rapides à utiliser que les guillemets doubles, donc cela n'aurait de sens que si la même chose s'appliquait à JavaScript.
Conclusion: je pense que nous devons faire plus de recherche à ce sujet.
Edit: Cela pourrait expliquer les résultats des tests de Peter-Paul Koch datant de 2003.
Il semble que les guillemets simples soient parfois plus rapides dans Windows Explorer (environ 1/3 de mes tests ont montré un temps de réponse plus rapide), mais si Mozilla montre une différence, il gère les guillemets doubles légèrement plus rapidement. Je n'ai trouvé aucune différence à Opera.
Edit 2014: les versions modernes de Firefox / Spidermonkey ne font plus cela.