Chrome中带有({})的默认令牌意外默认值

时间:2010-10-15 12:51:51

标签: javascript

我收到错误“SyntaxError:Unexpected token default” 在Chrome(+ Opera)中的任何对象上获取或设置属性“default”时。

({}).default

有人可以解释为什么会这样吗?

upd:每个人,PLZ,因为它对FF没有意义所以在测试时你可以错过这个bug。

1 个答案:

答案 0 :(得分:8)

default是JavaScript中的关键字(适用于switch语句)。

在ECMAScript第五版中允许使用点属性访问器中的保留字(具体来说:点属性访问器的语法是MemberExpression . IdentifierName [第12.2.1节]和IdentifierName,与{{1不同},可能是Identifier [第7.6节],但不是在ECMAScript第三版(它是ReservedWord)中。第三版目前是所有浏览器支持的基准。

安全使用MemberExpression . Identifier属性访问:

[]

或避免使用关键字作为属性名称。