对象键中的引号:语义上的差异?
在 JavaScript 中,可以使用带或不带引号的键来定义对象属性。虽然这看起来似乎是一个微小的差异,但它确实给属性访问的行为带来了微妙的变化。
带引号的属性与不带引号的属性
示例
考虑以下示例:
obj1 = {'foo': 'bar'}; obj2 = {foo: 'bar'};
在这种情况下, obj1 和obj2 具有相同的键值对,但可以以不同方式访问该属性:
console.log(obj1.foo); // 'bar' console.log(obj2.foo); // ReferenceError: foo is not defined console.log(obj2['foo']); // 'bar'
如您所见,无法使用点表示法访问 obj2,因为键“foo”不是有效的 JavaScript 标识符。相反,必须使用括号表示法。
注意:
虽然使用引号与否在功能上没有显着差异,但 JSON 数据交换格式需要双引号围绕属性键。如果您计划以 JSON 格式交换数据,建议始终在对象键周围使用引号。
以上是JavaScript 中带引号与不带引号的对象键:语义差异是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!