JavaScript 允许在标识符名称中使用 unicode 转义序列...例如:
var \u0160imeVidas = "blah";
上述变量以(克罗地亚)字母Š开头,因此变量的完整名称是“ŠimeVidas”。现在,这很整洁,但有什么意义呢?是否有任何场景可以使用此功能?
JavaScript 允许在标识符名称中使用 unicode 转义序列...例如:
var \u0160imeVidas = "blah";
上述变量以(克罗地亚)字母Š开头,因此变量的完整名称是“ŠimeVidas”。现在,这很整洁,但有什么意义呢?是否有任何场景可以使用此功能?
假设您有一个以 UTF-8 存储的库,并且作者选择在 API 中使用非 ASCII 字符。然后,假设出于某种原因,您需要从以 ASCII 格式存储的文件中访问该库。允许标识符中的 Unicode 转义序列允许您这样做。可能还有其他这样的场景,但这是一个例子。
我能想到的在声明变量时使用 unicode 转义序列的唯一用途是用于混淆。当然,您可以为同一个变量键入以下内容:
var ŠimeVidas = "blah";
现在,如果您要使用替换为 unicode 转义序列的字符串中的随机字符来引用此变量,则搜索和查找这些引用将变得更加困难。当然,与大多数其他混淆技术一样,它很容易可逆。
如果您想使用未映射到Alt+Num 组合的 unicode 字符,则可以节省在charmap(或您的操作系统等效项)中搜索键码的时间。但是,对于节省字节来说并不是很好。