2010-09-03 19 views
5

JavaScript permite tener secuencias de escape Unicode en nombres de identificador ... por ejemplo:¿Cuál es el sentido de las secuencias de escape unicode en los nombres de los identificadores en JavaScript?

var \u0160imeVidas = "blah"; 

La variable anterior comienza con la (croata) de la letra S, por lo que el nombre completo de la variable es "ŠimeVidas". Ahora, esto está bien, pero ¿cuál es el punto? ¿Hay algún escenario donde esta característica pueda ser de alguna utilidad?

+0

Interesante, lo hice en Chrome y se rompió * console.dir (window) *. –

+1

Dato interesante: no sabía que eso fuera posible. Supongo que es una extensión de querer permitir que cualquier cadena sea una clave en un objeto. –

+0

Buen punto, @TimTheTinker. dado que es 'window ['ŠimeVidas']', es posible una variable llamada 'ŠimeVidas'. – aularon

Respuesta

2

El único uso que se me ocurre para usar la secuencia de escape Unicode al declarar variables es para la ofuscación. Puede, por supuesto, escriba lo siguiente para la misma variable:

var ŠimeVidas = "blah"; 

Ahora, si tuviera que hacer referencia a esta variable con un carácter aleatorio en la cadena reemplazado por la secuencia de escape Unicode, sería mucho más difícil de buscar y encontrar esas referencias. Por supuesto, como la mayoría de las otras técnicas de ofuscación, sería fácilmente reversible.

Si desea utilizar un carácter Unicode que no se asigna a un Alt + Num combinación, se podría ahorrar tiempo en la búsqueda de un código clave en charmap (o su sistema operativo' equivalente). No es genial para guardar bytes, sin embargo.

3

Digamos que tiene una biblioteca almacenada en UTF-8 y que el autor elige usar caracteres que no sean ASCII en las API. Entonces, digamos que, por alguna razón, necesita acceder a esta biblioteca desde un archivo almacenado en ASCII. Permitir las secuencias de escape Unicode en identificadores te permite hacer eso. Podría haber otros escenarios similares, pero ese es un ejemplo.

Cuestiones relacionadas