Javascript变量是保留字的名称
我发现自己,出于一些与本文无关但涉及机器生成代码的原因,需要创建名称为Javascript保留字的变量 例如,对于对象文字,如果键是无效标识符,则引用它们:Javascript变量是保留字的名称,javascript,Javascript,我发现自己,出于一些与本文无关但涉及机器生成代码的原因,需要创建名称为Javascript保留字的变量 例如,对于对象文字,如果键是无效标识符,则引用它们: var o = { validIdentifier: 1, "not a valid identifier": 2 }; 有没有类似的技术适用于简单的变量引用 对规范的深入研究表明,过去存在一种机制,通过滥用Unicode转义实现了这一点: f\u0075nction = 7; 然而,这似乎难以置信的可疑,而且显然正在迅速消失(尽管我最
var o = { validIdentifier: 1, "not a valid identifier": 2 };
有没有类似的技术适用于简单的变量引用
对规范的深入研究表明,过去存在一种机制,通过滥用Unicode转义实现了这一点:
f\u0075nction = 7;
然而,这似乎难以置信的可疑,而且显然正在迅速消失(尽管我最近的Chrome似乎仍然支持它)。有更现代的等价物吗
有更现代的等价物吗
否。保留字不能用作变量名。你可以用看起来像这些词的名字,但仅此而已
从:
保留字是不能用作标识符的标识符名称
仅供参考,保留字可以用作属性名称,即使没有引号:
var o = { function: 1 };
变量名不能是保留字 你总是可以做坏事,比如:
window["function"] = 'foo';
console.log(window.function);
> foo
您仍然无法使用裸保留引用它,因为它是保留的
机器生成的代码意味着任何生成代码的东西都被破坏。如果它们是对象键,你可以随意调用它们(甚至是保留名称),而不需要引用它们
var o = { function: 'a' }
console.log(o.function) // a
关于最后一个问题:我的错误,我测试错误。关于前者:仍然希望一些奇怪的现象会从规范的某个模糊的角落爬出来……你为什么要这样做?“因为太不相关而无法进入这里”可能不像你想象的那样不相关。