属性名称“ var”在javascript关联数组中

| 出于好奇快速提问: 以下代码可在Firefox和Chrome中使用,但不能在Safari中使用。这是Firefox和Chrome规避的Javascript规范,还是Safari中的怪癖?
 var a = {};
 a.var = \"test\";
全部(Firefox,Safari和Chrome)
 a[\"var\"] = \"test\";
 a.id = \"another test\";
可以正常工作。 干杯, 耶隆     
已邀请:
        根据ecmascript规范不允许 来自ecmascript-262:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
7.6.1.1 Keywords
The following tokens are ECMAScript keywords and may not be used as Identifiers in ECMAScript programs.

break, do, instanceof, typeof, case, else, new, var, catch, finally, return, void, continue, for, switch, while, debugger, function, this, with, default, if, throw, delete, in, try
基于野生动物园是首选行为     
        
var
是保留关键字,因此在不加引号的情况下使用时可能会中断。     
        Chrome和Firefox似乎在标识符(变量,对象,函数等)和对象属性之间有明显的区别。我尝试了所有保留字,并以它们“工作”作为对象:
var myObject = {
  new : 30,
  var: 20
}
您可以访问每个属性,并且不会引发SyntaxError。     

要回复问题请先登录注册