在JavaScript中,双引号("")和没有引号的属性名称有什么区别?

Dar*_*htA 1 javascript properties object

var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };  
Run Code Online (Sandbox Code Playgroud)

这个例子car.manyCars.a和之间的区别是什么car.manyCars.b?

fal*_*tro 8

没有任何.

行情允许您指定哪些不是有效的JavaScript标识符的名称,但两者a并b有.例如,这不合法:

var car = { a*b: "Saab" };
Run Code Online (Sandbox Code Playgroud)

而这将是

var car = { "a*b": "Saab" };
Run Code Online (Sandbox Code Playgroud)

由于*b不是有效的标识符.

请注意,JSON(基于JavaScript)不允许使用不带引号的名称.

编辑
此处的异常,正如您所注意到的,您可以使用数字而不引用它们,这些数字不是有效的JavaScript标识符.这实际上相当奇怪,没有充分的理由,可能有机会简写声明.car.7不会因同样的原因解析,它不是有效的标识符,你需要使用car[7].