2010-09-03 16 views
5

JavaScript cho phép có các chuỗi thoát unicode trong tên định danh ... ví dụ:Điểm chuỗi thoát unicode trong tên định danh trong JavaScript là gì?

var \u0160imeVidas = "blah"; 

Biến ở trên bắt đầu với (croatian) chữ S, do đó tên đầy đủ của các biến là "ŠimeVidas". Bây giờ, điều này gọn gàng, nhưng điểm là gì? Có bất kỳ trường hợp nào mà tính năng này có thể bị sử dụng không?

+0

Thú vị, tôi đã làm điều đó trong Chrome và nó đã phá vỡ * console.dir (cửa sổ) *. –

+1

Điểm thú vị - không biết điều đó là có thể. Tôi cho rằng đó là một phần mở rộng của muốn cho phép bất kỳ chuỗi như là một chìa khóa trong một đối tượng. –

+0

Điểm tốt, @TimTheTinker. vì nó là 'window ['ŠimeVidas']', một biến có tên 'ŠimeVidas' là có thể. – aularon

Trả lời

2

Cách sử dụng duy nhất tôi có thể nghĩ đến khi sử dụng trình tự thoát unicode khi khai báo biến là obfuscation. Bạn có thể, tất nhiên, gõ như sau cho cùng một biến:

var ŠimeVidas = "blah"; 

Bây giờ, nếu bạn đã đề cập đến biến này với một nhân vật ngẫu nhiên trong chuỗi thay thế bằng chuỗi unicode thoát, nó sẽ được nhiều hơn nữa khó tìm kiếm và tìm các tham chiếu đó. Tất nhiên, giống như hầu hết các kỹ thuật obfuscation khác nó sẽ dễ dàng đảo ngược.

Nếu bạn muốn sử dụng ký tự unicode không được ánh xạ tới số Alt + Num, nó có thể tiết kiệm thời gian tìm kiếm mã khóa trong charmap (hoặc hệ điều hành của bạn tương đương). Tuy nhiên, không tuyệt vời để tiết kiệm byte.

3

Giả sử bạn có thư viện được lưu trữ trong UTF-8 và tác giả chọn sử dụng các ký tự không phải ASCII trong API. Sau đó, giả sử rằng — vì một số lý do — bạn cần truy cập thư viện này từ tệp được lưu trữ trong ASCII. Cho phép các chuỗi thoát Unicode trong các mã định danh cho phép bạn thực hiện điều đó. Có thể có các tình huống như vậy, nhưng đó là một ví dụ.

Các vấn đề liên quan