这来自对 StackOverflow 上关于 JavaScript 变量的一个问题的评论:为什么 ◎☺ 和 ☺ 不是有效的 JavaScript 变量名?
JavaScript 接受零宽度字符作为有效的变量名,例如所有这三个变量都有不同的名称,但在视觉上是相同的:
var ab, /* ab */
ab, /* a‍b */
ab; /* a‌b */
这是上述三个正在使用的变量的JSFiddle示例。
作为 JavaScript(和其他支持语言)的混淆技术,这样做的利弊是什么?