2322 Stimmen

Wann sollte ich doppelte oder einfache Anführungszeichen in JavaScript verwenden?

console.log("double"); vs. console.log('single');

Ich sehe immer mehr JavaScript-Bibliotheken, die bei der Verarbeitung von Zeichenketten einfache Anführungszeichen verwenden. Was sind die Gründe für die Verwendung einer über die andere?

Ich dachte, sie sind so ziemlich austauschbar.

148 Stimmen

Was ist leichter zu lesen? alert("Es ist Spielzeit"); oder alert('Es ist Spielzeit');

667 Stimmen

Wie wäre es mit diesem Ryan? alert("It's \"game\" time."); o alert('It\'s "game" time.'); ?

44 Stimmen

Wenn einfache Anführungszeichen immer verwendet werden und gelegentlich doppelte Anführungszeichen, wenn das Literal einfache Anführungszeichen enthält, dann müssen wir viel weniger Umschalttasten drücken und unser linker kleiner Finger wird uns den Segen geben. Aber ja, wie @arne sagte, für JSON sollten doppelte Anführungszeichen verwendet werden.

1440voto

Ady Punkte 4716

Der wahrscheinlichste Grund für die Verwendung von single vs. double in verschiedenen Bibliotheken ist die Vorliebe der Programmierer und/oder die Konsistenz der API. Abgesehen von der Konsistenz sollte das verwendet werden, was am besten zur Zeichenkette passt.

Verwendung der anderen Art von Anführungszeichen als Literal:

alert('Say "Hello"');
alert("Say 'Hello'");

Das kann kompliziert werden:

alert("It's \"game\" time.");
alert('It\'s "game" time.');

Eine weitere Option, neu in ECMAScript 6, ist Vorlagenliterale die die Backtick Charakter:

alert(`Use "double" and 'single' quotes in the same string`);
alert(`Escape the \` back-tick character and the \${ dollar-brace sequence in a string`);

Schablonenliterale bieten eine saubere Syntax für: Variableninterpolation, mehrzeilige Strings und mehr.

Beachten Sie, dass JSON ist formal so spezifiziert, dass doppelte Anführungszeichen verwendet werden, was je nach Systemanforderungen eine Überlegung wert sein kann.

116 Stimmen

Ein wichtiger Punkt, der bei allen Code-Konventionen zu beachten ist: Definieren Sie sie einmal und behalten Sie sie bei. Das heißt, verwenden Sie nicht irgendwo doppelte Anführungszeichen und anderswo einfache Anführungszeichen.

220 Stimmen

@Cerebrus - Ich denke, Flexibilität ist in diesem Fall in Ordnung. Sicherlich wählen Sie einen bevorzugten Stil, aber wenn Sie von dem Stil abweichen müssen, um viele Anführungszeichen in einer Zeichenkette zu vermeiden. Das wäre für mich in Ordnung.

14 Stimmen

Ich glaube nicht, dass es einen Grund gibt, hier konsequent zu sein. Beides hat keine Vorteile, und ich glaube nicht, dass es die Lesbarkeit wirklich beeinträchtigt, wenn man an einer Stelle ' und an einer anderen " verwendet oder nicht.

694voto

Arne Punkte 2898

Wenn Sie mit JSON arbeiten, sollten Sie beachten, dass JSON-Strings streng genommen in doppelten Anführungszeichen stehen müssen. Sicher, viele Bibliotheken unterstützen auch einfache Anführungszeichen, aber ich hatte große Probleme in einem meiner Projekte, bevor ich erkannte, dass die einfache Anführung einer Zeichenkette in der Tat nicht den JSON-Standards entspricht.

7 Stimmen

Dies ist sehr wichtig, wenn Sie mit jQuery.ajax arbeiten und einen ASP.NET-Dienst (Web Service, Page Method oder MVC) aufrufen.

113 Stimmen

Die Eigenschaftsnamen innerhalb Die JSON-Strings müssen in doppelten Anführungszeichen stehen, aber ein JSON-String als Ganzes kann in einfachen Anführungszeichen stehen: var jsonString = '{"key1":"value1"}'; (Nicht dass ich empfehlen würde, JSON manuell zu erstellen).

1 Stimmen

Ich fand dies auch bei der Erstellung der folgenden Dokumente sehr wichtig package.json Dateien für node.js. jsonlint.de könnte zur Validierung von json verwendet werden.

408voto

user1429980 Punkte 6380

Es gibt keine bessere Lösung Ich möchte jedoch argumentieren, dass doppelte Anführungszeichen manchmal wünschenswerter sind:

  • Neuankömmlinge werden mit doppelten Anführungszeichen bereits aus ihrer Sprache vertraut sein . Im Englischen müssen wir doppelte Anführungszeichen verwenden " um eine zitierte Textstelle zu identifizieren. Wenn wir ein einzelnes Zitat verwenden würden ' kann der Leser dies fälschlicherweise als Verkürzung interpretieren. Die andere Bedeutung einer Textpassage, die von dem ' bezeichnet die "umgangssprachliche" Bedeutung. Es ist sinnvoll, sich an bereits existierende Sprachen anzulehnen, was das Erlernen und die Interpretation des Codes erleichtern dürfte.

  • Doppelte Anführungszeichen ersparen das Auslassen von Apostrophen (wie bei Kontraktionen). Betrachten Sie die Zeichenfolge: "I'm going to the mall" im Vergleich zur sonst entgangenen Version: 'I\'m going to the mall' .

  • Doppelte Anführungszeichen bedeuten in vielen anderen Sprachen eine Zeichenkette . Wenn Sie eine neue Sprache wie Java oder C lernen, werden immer doppelte Anführungszeichen verwendet. In Ruby, PHP und Perl implizieren einfache Anführungszeichen keine Backslash-Escapes, während doppelte Anführungszeichen sie unterstützen.

  • Die JSON-Notation wird mit doppelten Anführungszeichen geschrieben.

Dennoch ist es, wie andere bereits gesagt haben, sehr wichtig, konsequent zu bleiben.

7 Stimmen

Ihr erster Punkt über die englische Sprache ist nicht immer zutreffend und kann sich je nach Ort/Hauskonvention ändern. In gedruckten Materialien werden in der Regel einfache Anführungszeichen für die Rede verwendet und andere Formatierungen für große Blöcke von zitiertem Text. Ihre "umgangssprachliche" Bedeutung ist keine sinnvolle Definition von Anführungszeichen zur Hervorhebung. Außerdem sind englische Benutzer im Allgemeinen sehr schlecht im Umgang mit Anführungszeichen und Apostrophen.

3 Stimmen

@JohnFerguson, schon aus diesem Grund kann es wünschenswert sein, doppelte Anführungszeichen zu verwenden, um diese Unterscheidung (zwischen Apostrophen und zitierten Passagen) zu treffen.

1 Stimmen

Mir geht es um Pragmatismus. Da einer von 100 Strings, die ich eintippe oder verwende, doppelte Anführungszeichen enthält, und viele, viele mehr Apostrophe, verwende ich doppelte Anführungszeichen. Letzten Endes sollten Sie jedoch den Anführungszeichen-Typ verwenden, der 1) bereits im Projekt verwendet wird, wenn Sie ein neuer Entwickler sind, oder 2) den Typ verwenden, den Sie für sinnvoller halten.

126voto

Gareth Punkte 123487

Abschnitt 7.8.4 der Spezifikation beschreibt die Notation von Zeichenketten. Der einzige Unterschied besteht darin, dass DoubleStringCharacter "SourceCharacter aber nicht double-quote" und SingleStringCharacter "SourceCharacter aber nicht single-quote" ist. Daher ist die nur Der Unterschied lässt sich folgendermaßen nachweisen:

'A string that\'s single quoted'

"A string that's double quoted"

Es hängt also davon ab, wie viele Anführungszeichen Sie einfügen möchten. Dasselbe gilt natürlich auch für doppelte Anführungszeichen in Strings mit doppelten Anführungszeichen.

0 Stimmen

@Gareth: Ich habe nicht von den Spezifikationen gesprochen, sondern von den möglichen Auswirkungen auf die Leistung. stackoverflow.com/questions/242813/

0 Stimmen

Wenn Sie so viele Apostrophe in Ihren Code einfügen, dass Sie so oft wie möglich die Umschalttaste+' drücken müssen, dann machen Sie es falsch.

4 Stimmen

Was ist mit "{\"name\": \"Peter\"}" gegen '{"name": "Peter"}' ? Man könnte zwar sagen, dass dies derselbe Unterschied ist, aber er würde Ihre Entscheidung sicherlich anders beeinflussen als das obige Beispiel.

122voto

Alec Mev Punkte 4401

Einzelne Zitate

Ich wünschte, doppelte Anführungszeichen wären der Standard, denn sie ein bisschen mehr Sinn machen aber ich verwende weiterhin einfache Anführungszeichen, weil sie die Szene dominieren.

Einfache Anführungszeichen:

Keine Präferenz:

Doppelte Anführungszeichen:

12 Stimmen

Crockford bevorzugt jetzt doppelte Anführungszeichen.

9 Stimmen

Airbnb bevorzugt jetzt doppelte Anführungszeichen

20 Stimmen

@SurajJain Quelle? Airbnb et Google In den Stilrichtlinien wird nach wie vor die einfache Form bevorzugt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X