【发布时间】:2025-12-18 23:30:01
【问题描述】:
我正在尝试找出对 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)
这个post 详细说明了有效的javascript 变量名,而'-^colour' 显然是无效的(作为变量名)。这同样适用于对象属性名称吗?看看上面我正在努力解决如果
b['-^colour'] 无效,但可以在所有浏览器中正常工作,我不应该相信它会继续工作
-
b['-^colour'] 是完全有效的,但它只是一种只能以这种方式访问的形式 - (它支持,所以对象可以用作地图吗?)
别的东西
顺便说一句,javascript 中的全局变量可能在顶层声明为
var abc = 0;
但也可以用
创建(据我所知)window['abc'] = 0;
以下所有浏览器均适用
window['@£$%'] = "bling!";
alert(window['@£$%']);
这有效吗?这似乎与变量命名规则相矛盾 - 或者我没有在那里声明变量?变量和对象属性名有什么区别?
【问题讨论】:
标签: javascript