2010-09-03 65 views
5

JavaScript允許對於具有標識符名稱Unicode轉義序列...例如:JavaScript中的標識符名稱中的unicode轉義序列有什麼意義?

var \u0160imeVidas = "blah"; 

上述變量開始與(克羅地亞)字母S,使得可變的完整名稱爲「ŠimeVidas」。 現在,這是很整潔,但有什麼意義? 有沒有這種功能可能有用的任何場景?

+0

有趣的是,我在Chrome中做了它,並打破了* console.dir(window)*。 – 2010-09-03 22:50:46

+1

有趣的一點 - 不知道這是可能的。我想這是想要允許任何字符串作爲對象中的鍵的擴展。 – 2010-09-03 22:53:47

+0

好點,@TimTheTinker。因爲它是'window ['ŠimeVidas']',所以名爲'ŠimeVidas'的變量是可能的。 – aularon 2010-09-03 22:56:19

回答

2

我唯一可以想到的是,在聲明變量時使用unicode轉義序列用於混淆。你可以,當然,鍵入相同的變量如下:現在

var ŠimeVidas = "blah"; 

,如果你要引用這個變量與Unicode轉義序列替換字符串中的一個隨機字符,它會更很難搜索並找到這些參考。當然,像大多數其他混淆技術一樣,它很容易逆轉。

如果您想使用未映射到Alt + Num組合的unicode字符,它可以節省在charmap(或您的OS等效項)中搜索關鍵代碼的時間。不過,對於保存字節不是很好。

3

假設你有一個以UTF-8存儲的庫,並且作者選擇在API中使用非ASCII字符。然後,讓我們說出於某種原因,您需要從存儲在ASCII中的文件訪問此庫。允許標識符中的Unicode轉義序列允許您這樣做。可能還有其他這樣的場景,但這只是一個例子。

相關問題