带引号和不带引号的对象键:外观上的差异
使用 JavaScript 对象时,您可能会遇到带或不带引号的对象键。一个常见的问题是:
obj = {'foo': 'bar'}; // With quotes
和
obj = {foo: 'bar'}; // Without quotes
之间是否有任何区别答案:没有显着差异
在大多数情况下,带引号和不带引号的键没有显着差异。 JavaScript 允许不带引号的键,只要它们是有效的 JavaScript 标识符即可。
例外:在键中使用特殊字符
但是,如果您需要在键中使用特殊字符,例如破折号(-),必须使用引号。
JSON需求
需要注意的是,JSON 数据交换格式需要在键周围使用双引号。虽然这不会影响 JavaScript 对象的功能,但如果您打算与使用 JSON 的系统交换数据,则需要考虑一下。
示例
让我们考虑以下代码:
var obj1 = {'foo': 'bar', 'baz-1': 'qux'}; var obj2 = {foo: 'bar', 'baz-1': 'qux'};
obj1 和 obj2 都会创建具有相同键和值的对象。但是,如果您尝试将 obj1 转换为 JSON 字符串,则会因未加引号的键带有破折号而遇到错误。
总之,虽然带引号和不带引号的键之间通常没有功能差异,建议对包含特殊字符或处理 JSON 数据交换的键使用引号。
以上是JavaScript 中带引号和不带引号的对象键有区别吗?的详细内容。更多信息请关注PHP中文网其他相关文章!