最佳答案
我试图找出什么是对 javascript 对象的属性名有效的
var b = {}
b['-^colour'] = "blue"; // Works fine in Firefox, Chrome, Safari
b['colour'] = "green"; // Ditto
alert(b['-^colour']); // Ditto
alert(b.colour); // Ditto
for(prop in b) alert(prop); // Ditto
//alert(b.-^colour); // Fails (expected)
这个 邮寄详细说明了有效的 javascript 变量名,而“-^ color”显然是无效的(作为变量名)。这同样适用于对象属性名吗?看着上面的内容,我想弄清楚
B [’-^ color’]是无效的,但在所有浏览器中都能奇怪地工作,我不应该相信它能继续工作
B [’-^ color’]是完全有效的,但它只是一种只能以这种方式访问的形式-(它是支持的,所以 Object 也许可以用作地图?)
别的东西
另外,javascript 中的全局变量可以在顶层声明为
var abc = 0;
但也可以被创造(据我所知)
window['abc'] = 0;
以下内容适用于上述所有浏览器
window['@£$%'] = "bling!";
alert(window['@£$%']);
这有效吗?它似乎与变量命名规则相矛盾——或者我没有在那里声明一个变量?变量名和对象属性名的区别是什么?