2010-09-03 6 views
5

JavaScript ermöglicht es beispielsweise Unicode-Escape-Sequenzen in Bezeichnernamen ... für mit:Was ist der Sinn von Unicode-Escape-Sequenzen in Bezeichner-Namen in JavaScript?

var \u0160imeVidas = "blah"; 

Die obige Variable beginnt mit dem (kroatisch) Brief Š, so dass der vollständige Name der Variablen "ŠimeVidas" ist. Nun, das ist sauber, aber was ist der Sinn? Gibt es ein Szenario, in dem diese Funktion von Nutzen sein kann?

+0

Interessant, ich habe es in Chrome und es brach * console.dir (window) *. –

+1

Interessanter Punkt - wusste nicht, dass das möglich war. Ich nehme an, es ist eine Erweiterung des Wunsches, irgendeine Zeichenfolge als Schlüssel in einem Objekt zuzulassen. –

+0

Guter Punkt, @TimTheTinker. da es 'window ['ŠimeVidas']' ist, ist eine Variable namens 'ŠimeVidas' möglich. – aularon

Antwort

2

Die einzige Verwendung, die ich für die Verwendung der Unicode-Escape-Sequenz beim Deklarieren von Variablen denken kann, ist für die Verschleierung. Sie können, natürlich, geben Sie den folgenden für die gleiche Variable:

var ŠimeVidas = "blah"; 

Nun, wenn Sie auf diese Variable mit einem zufälligen Zeichen in der Zeichenfolge mit der Unicode-Escape-Sequenz ersetzt beziehen, wäre es viel mehr sein schwer zu finden und diese Referenzen zu finden. Natürlich wäre es wie die meisten anderen Verschleierungstechniken leicht umkehrbar.

Wenn Sie ein Unicode-Zeichen verwenden möchten, das keiner Alt + Num-Kombination zugeordnet ist, könnte es bei der Suche nach dem Schlüsselcode in charmap (oder dem entsprechenden Betriebssystem) Zeit sparen. Nicht großartig zum Speichern von Bytes.

3

Angenommen, Sie haben eine Bibliothek in UTF-8 gespeichert, und der Autor hat die Verwendung von Nicht-ASCII-Zeichen in den APIs ausgewählt. Nehmen wir an, dass Sie aus irgendeinem Grund aus einer Datei, die in ASCII gespeichert ist, auf diese Bibliothek zugreifen müssen. Wenn Sie die Unicode-Escape-Sequenzen in Bezeichnern zulassen, können Sie dies tun. Es könnte andere solche Szenarien geben, aber das ist ein Beispiel.