2013-01-21 8 views
8

Kann mir jemand erklären, warum das '@' - Symbol nicht in Variablennamen verwendet werden darf und was ich verwenden sollte?Warum ist das ‚@‘ Symbol in Javascript reserviert und was ist ihr Zweck?

+0

es ist in e4x verwendet eine bestimmte Art von Syntax zu durchlaufen Xml – philipp

+0

Sowie Sie können nicht '#', '' '' oder '' '. Es ist ungültige Syntax für Variablennamen. – VisioN

+0

mögliche Duplikat von [ Eine Frage, über JavaScript-Objekt Eigenschaftsnamen] (http://stackoverflow.com/questions/5006049/a-question-about-javascript-object-property-name) – jbabey

Antwort

7

Es ist nicht oder speziell reserviert, es ist nur kein gültiges Javascript Bezeichnerzeichen. Aus dem gleichen Grunde funktioniert das:

var obj = { 'foo-baz' : 'bar' }; 
obj['foo-baz']; 

Und das nicht:

var obj = { 'foo-baz' : 'bar' }; 
obj.foo-baz; 

Valid Javascript Bezeichner muss mit einem Buchstaben oder $ beginnen und darf nur Buchstaben, Zahlen enthält, $ und _. Alles andere in einem Eigenschaftsnamen zwingt Sie dazu, Klammernotation zu verwenden.

Related question.

+0

okay, das macht Sinn ich weiß jedoch, dass die '. - 'Symbol subtrahiert Was bedeutet' @ 'tun – idbehold

+1

@idbehold es nichts mit dem zu tun hat, was das Symbol bedeutet (' @ 'hat keine besondere Bedeutung in JavaScript aktivieren, wenn Sie neugierig sind).? - nach dem [spec] (http :. //ecma262-5.com/ELS5_HTML.htm#Section_11.1.5), Objektschlüssel muss entweder Stringliterale, Zahlenliterale oder Bezeichnernamen Da '@' 'sein, -', etc, sind nicht in Bezeichnernamen erlaubt , müssen sie in Anführungszeichen eingeschlossen werden, um String-Lite zu werden Ralf. – jbabey

+0

Danke, mein Herr. Perfekte Erklärung. – idbehold