javascript - 为什么要在对象的属性中添加单引号

标签 javascript

对于javascript对象,对于它的属性,我通常不会给它添加单引号。我记得如果我在对象的属性中添加单引号,它就会变成 JSON 吗?我说得对吗?

请看这段代码,两个代码都会输出对象的值。请解释我是否需要向对象的属性添加单引号?

var test1 = {
    foo: 'foo1',
  bar: 'bar1'
};
alert(test1.foo);

var test2 = {
    'foo': 'foo1',
  'bar': 'bar1'
};
alert(test2.foo);

https://jsfiddle.net/azp9wj0x/

最佳答案

请记住,JSON 仅与 JavaScript 无关,是 a spec separate from JavaScript itself .

单引号不是有效的 JSON。双引号是。不过,这无关紧要,因为这是 JavaScript 代码,并且在定义事物的方式方面它更加宽容。

只有当您序列化要在应用程序外部传输的内容时,JSON 才会发挥作用。在这种情况下,如何定义数据并不重要:

var test1 = {
  foo: 'foo1',
  bar: 'bar1'
};

JSON.stringify(test1, null, 2);

无论您使用单引号、双引号还是根本不使用引号,它都将正确编码为 JSON。

关于javascript - 为什么要在对象的属性中添加单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286629/

相关文章:

javascript - 如何更新 mongodb 中字段具有相同值的文档?

javascript - Jquery not() select 在我的情况下不起作用

c# - 当光标悬停在 asp.net 网站中的图像上时如何更改图像

JavaScript 不会退出 do while 循环

javascript - 我应该如何归因于 Twitter bootstrap 的 glyphicons 组件?

javascript - 使用 Ajax 和 JQuery 从 SQL 数据库添加和删除行

javascript - 如何从路由/索引访问 io.emit()? express 4.15

Javascript 奇怪的 Fetch() 问题,在特定 JSON 数据/格式上失败

javascript - 如何使绘图 Canvas 响应?

javascript - 如何在 JavaScript ES6 中功能性地遍历矩阵?