Ich möchte sagen, dass der Unterschied rein stilistisch ist, aber ich habe wirklich meine Zweifel. Betrachten Sie das folgende Beispiel:
/*
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);
In Safari, Chrome, Opera und Internet Explorer (getestet in IE7 und IE8) wird Folgendes zurückgegeben:
function () {
return this.replace(/^\s+|\s+$/g, '');
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
Firefox liefert jedoch ein etwas anderes Ergebnis:
function () {
return this.replace(/^\s+|\s+$/g, "");
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, "");
}
Die einfachen Anführungszeichen wurden durch doppelte Anführungszeichen ersetzt. (Beachten Sie auch, wie der Einrückungsbereich durch vier Leerzeichen ersetzt wurde.) Dies erweckt den Eindruck, dass mindestens ein Browser JavaScript intern analysiert, als ob alles in doppelte Anführungszeichen geschrieben worden wäre. Man könnte meinen, Firefox braucht weniger Zeit, um JavaScript zu analysieren, wenn bereits alles nach diesem 'Standard' geschrieben ist.
Das macht mich übrigens zu einem sehr traurigen Panda, da ich denke, dass einfache Anführungszeichen im Code viel besser aussehen. In anderen Programmiersprachen sind sie normalerweise schneller zu verwenden als doppelte Anführungszeichen. Daher wäre es nur sinnvoll, wenn dies auch für JavaScript gilt.
Fazit: Ich denke, wir müssen diesbezüglich mehr Forschung betreiben.
Bearbeiten: Dies könnte die Testergebnisse von Peter-Paul Koch aus dem Jahr 2003 erklären .
Es scheint, dass einfache Anführungszeichen in Explorer Windows manchmal schneller sind (ungefähr 1/3 meiner Tests zeigten eine schnellere Antwortzeit), aber wenn Mozilla überhaupt einen Unterschied zeigt, werden doppelte Anführungszeichen etwas schneller verarbeitet. In Opera habe ich überhaupt keinen Unterschied gefunden.
Edit 2014: Moderne Versionen von Firefox / Spidermonkey machen das nicht mehr.