Javascript变量名称是保留字

时间:2015-09-05 23:07:29

标签: javascript

我发现自己,由于与此无关的原因,但涉及机器生成的代码,需要创建名称为Javascript保留字的变量。

例如,使用对象文字,如果它们是无效的标识符,则引用密钥:

var o = { validIdentifier: 1, "not a valid identifier": 2 };

是否有类似的技术适用于简单的变量引用?

在规范周围发现,显示使用作为一种机制,通过滥用Unicode转义来实现这一点:

f\u0075nction = 7;

然而,这似乎令人难以置信的可疑,并且显然正在迅速消失(虽然我最近的Chrome似乎仍然支持它)。是否有更现代的等价物?

3 个答案:

答案 0 :(得分:0)

  

是否有更现代的等价物?

没有。保留字不能用作变量名。您可以使用看起来的名称,就像那些单词一样。

来自spec

  

保留字是 IdentifierName ,不能用作标识符

仅供参考,保留字可用作属性名称,即使没有引号:

var o = { function: 1 };

答案 1 :(得分:0)

变量名称不能成为保留字。

你总是可以做坏事:

window["function"] = 'foo';
console.log(window.function);
> foo

您仍然无法使用 bare 保留引用它,因为它已被保留。

它的机器生成代码意味着生成代码的任何内容都被破坏了。

答案 2 :(得分:0)

如果他们是对象键,您可以按照自己喜欢的方式调用它们(即使是保留名称),也不需要引用它们。

var o = { function: 'a' }

console.log(o.function) // a

DEMO