Warum sind nicht JavaScript ܫ ◎ und ☺ gültige JavaScript-Variablennamen?
Bemerkte ich, dass im Internet Explorer (aber leider nicht in den anderen Browsern die ich getestet habe), können Sie einige Unicode-Variablen-Namen. Das machte mein Tag, und ich war absolut begeistert, dass ich das schreiben könnte Spaß Unicode-laden Sie code wie diesen:
var ктоείναι草泥马 = "You dirty horse.",
happy☺n☺mat☺p☺eia = ":)Yay!",
ಠ_ಠ = "emoticon";
alert(ктоείναι草泥马 + happy☺n☺mat☺p☺eia + ಠ_ಠ);
Aus irgendeinem Grund, obwohl, ܫ
♨_♨
und ☺
sind keine gültigen Variablennamen.
Warum ܫ
ಠ_ಠ
und 草泥马
Arbeit, aber
♨_♨
und ☺
nicht?
EDIT: Testen Sie es in Ihrem browser auf JSFiddle. Ich habe es getestet in Internet Explorer 9, Chrome, Firefox und Opera. Bisher scheint es zu funktionieren nur in Internet Explorer 9. (Ich weiß nicht, über Internet Explorer 8 und unten.) Lassen Sie mich wissen, wenn es in einem anderen browser.
InformationsquelleAutor der Frage Peter Olson | 2011-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
ಠ_ಠ
und 草泥马 nur die "Buchstaben" im eigentlichen Alphabete; ಠ
ist ein symbol aus der Kannada-alphabet, und 草泥马 besteht aus chinesischen Zeichen.
und ☺, jedoch, sind nur Symbole; Sie sind nicht im Zusammenhang mit alphabet.
Den ECMAScript-Standards, Kapitel 7.6 (alle Browser außer Internet Explorer sind folgende), die besagt, dass ein Bezeichner muss mit einem der folgenden.
$
oder_
\
gefolgt von einer unicode-escape-Sequenz.Folgende Zeichen eines Bezeichners muss ein der folgenden.
IE geht über den standard und ist Freizügig genug, damit einige Symbole, wie zum Beispiel ☺.
Gibt es ein Werkzeugdass wird Ihnen sagen, wenn eine beliebige Zeichenfolge, die Sie eingeben, wird ein Gültiger JavaScript-variable namens nach ECMAScript 5.1 und Unicode 6.1.
InformationsquelleAutor der Antwort Michael Madsen
EcmaScript 262, Abschnitt 7.6 sagt müssen die Namen beginnen mit $, _, oder ein Unicode-Zeichen, und nach, dass enthalten kann, die entweder die Zeichen-oder Unicode-Kombinationszeichen, Unicode-Ziffern-oder Unicode-Anschluss Satzzeichen (und ein paar format-steuerzeichen, die sind sprachspezifisch.)
So, der Unterschied zwischen erlaubt und nicht erlaubt Bezeichner in den Fällen ist wohl, ob die führenden Zeichen als "Brief".
InformationsquelleAutor der Antwort broofa
Für die große Gerechtigkeit: da die meisten Dinge in JS sind "Objekte", die Sie verwenden können, eckigen Klammer-syntax:
Dies ist das gleiche wie var smth = true in einen globalen Kontext.
InformationsquelleAutor der Antwort Tommi