2010-09-03 4 views
5

JavaScript consente di avere sequenze di escape Unicode nei nomi di identificatore ... per esempio:Qual è il punto delle sequenze di escape Unicode nei nomi degli identificatori in JavaScript?

var \u0160imeVidas = "blah"; 

La variabile sopra inizia con la (croato) lettera S, in modo che il nome completo della variabile è "ŠimeVidas". Ora, questo è pulito, ma qual è il punto? C'è qualche scenario in cui questa funzione potrebbe essere di qualche utilità?

+0

Interessante, l'ho fatto in Chrome e si è rotto * console.dir (finestra) *. –

+1

Punto interessante: non sapevo che fosse possibile. Suppongo che sia un'estensione di voler consentire qualsiasi stringa come chiave in un oggetto. –

+0

Buon punto, @TimTheTinker. dato che è 'window ['ŠimeVidas']', è possibile una variabile denominata 'ŠimeVidas'. – aularon

risposta

2

L'unico utilizzo che posso pensare per l'utilizzo della sequenza di escape unicode quando la dichiarazione delle variabili è per l'offuscamento. È possibile, naturalmente, digitare quanto segue per la stessa variabile:

var ŠimeVidas = "blah"; 

Ora, se si dovesse fare riferimento a questa variabile con un personaggio a caso nella stringa sostituita con la sequenza unicode fuga, sarebbe molto più difficile da cercare e trovare quei riferimenti. Naturalmente, come la maggior parte delle altre tecniche di offuscamento, sarebbe facilmente reversibile.

Se si voleva utilizzare un carattere Unicode che non è mappato a un Alt combinazione + Num, si potrebbe risparmiare tempo a cercare il codice chiave a charmap (o il vostro OS' equivalente). Non eccezionale per il salvataggio di byte, però.

3

Supponiamo che tu abbia una libreria memorizzata in UTF-8 e che l'autore scelga di utilizzare caratteri non ASCII nelle API. Quindi, diciamo che, per qualche motivo, è necessario accedere a questa libreria da un file archiviato in ASCII. Consentire le sequenze di escape Unicode negli identificatori consente di farlo. Potrebbero esserci altri scenari simili, ma questo è un esempio.