Gibt es einen Unterschied zwischen
obj = {'foo': 'bar'}
und
obj = {foo: 'bar'}
Ich habe festgestellt, dass Sie -
den Schlüssel nicht verwenden können, wenn ich die Anführungszeichen nicht verwende. Aber macht es tatsächlich einen Unterschied? Wenn ja, welche?
javascript
meo
quelle
quelle
obj = { 12e34: true };
ist nicht dasselbe wieobj = { '12e34': true };
. Ersteres würde erfordern, dass Sie über die Eigenschaft zugreifenobj['1.2e+35']
, während Sie für letzteres verwenden würdenobj['12e34']
. Siehe meine Antwort für weitere Details.Aus nicht zitierten Eigenschaftsnamen / Objektschlüsseln in JavaScript , meine Beschreibung zum Thema:
Beachten Sie, dass reservierte Wörter in ES5 als nicht zitierte Eigenschaftsnamen verwendet werden dürfen. Aus Gründen der Abwärtskompatibilität mit ES3 würde ich jedoch empfehlen, sie trotzdem zu zitieren.
Ich habe auch ein Tool erstellt, das Ihnen sagt, ob ein bestimmter Eigenschaftsname ohne Anführungszeichen und / oder mit Punktnotation verwendet werden kann. Probieren Sie es unter Mothereff.in/js-properties aus .
quelle
Hier gibt es keinen Unterschied. Nur eine Frage des Stils. Einer der Gründe dafür ist die Möglichkeit, "Super" oder "Klasse" als Schlüssel zu verwenden, da dies reservierte Schlüsselwörter sind.
Einige Leute könnten versucht sein, eine Zeichenfolge mit Leerzeichen zu übergeben und dann o ['Ich kann Leerzeichen haben'] aufzurufen. Aber ich würde diese schlechte Praxis nennen.
quelle
Nein, nicht zu Javascript. Einige JSON-Parser schlagen jedoch fehl, wenn die Anführungszeichen um die Schlüssel nicht vorhanden sind.
quelle
Es gibt Situationen, in denen sie unterschiedlich sind. Wenn Sie beispielsweise jQuery verwenden und beim Aufrufen des Befehls jQuery $ () zum Erstellen eines Elements eine Liste der zu übergebenden Parameter erstellen, werden in Anführungszeichen gesetzte Wörter in Parameter und nicht in Anführungszeichen gesetzte Wörter in Funktionen umgewandelt. Beispielsweise legt "size" das Größenattribut des Objekts fest, und size (keine Anführungszeichen) ruft die size () -Funktion für das Objekt auf. Siehe jQuery () unten:
quelle