在javascript中,`{foo:“bar”}`和`{foo:“bar”}`之间有什么区别?

在javascript中,`{foo:“bar”}`和`{foo:“bar”}`之间有什么区别?,javascript,json,Javascript,Json,可能重复: 下面a和b的区别是什么 var a = {foo : "bar"}; var b = {"foo" : "bar"}; 没有区别 中的键可以是标识符或字符串文字。您可以在不能在标识符中使用的字符串中使用字符,但foo不包含任何这些字符 另一方面,如果您编写的是JSON而不是JS,那么密钥必须是字符串,没有区别 中的键可以是标识符或字符串文字。您可以在不能在标识符中使用的字符串中使用字符,但foo不包含任何这些字符 另一方面,如果您编写的是JSON而不是JS,那么密钥必须是字符串这

可能重复:

下面a和b的区别是什么

var a = {foo : "bar"};
var b = {"foo" : "bar"};

没有区别

中的键可以是标识符或字符串文字。您可以在不能在标识符中使用的字符串中使用字符,但foo不包含任何这些字符


另一方面,如果您编写的是JSON而不是JS,那么密钥必须是字符串,没有区别

中的键可以是标识符或字符串文字。您可以在不能在标识符中使用的字符串中使用字符,但foo不包含任何这些字符


另一方面,如果您编写的是JSON而不是JS,那么密钥必须是字符串

这两个都是有效的JavaScript对象文本,并使用名为foo的属性计算不同的对象,a.foo==b.foo为true


因为您标记了它,所以第一条语句是无效的JSON,因为键需要是var a声明之外的字符串。

两者都是有效的JavaScript对象文本,并使用名为foo的属性计算不同的对象,a.foo==b.foo为true

因为您标记了它,所以第一条语句是无效的JSON,因为键需要是var a声明之外的字符串。

它们是相同的

引用的语法允许设置无效标识符(如foobar)或保留关键字(如for)的键

JSON只允许引用语法。

它们是相同的

引用的语法允许设置无效标识符(如foobar)或保留关键字(如for)的键


JSON只允许引用的语法。

请参阅Stack Overflow要求您在提问之前查看Javascript标准吗?已经说过了,但我再说一遍:您的代码段中没有JSON。@Felix不是JSON格式吗?不,我们是在Javascript的上下文中。它仍然是一个JavaScript对象文本。如果您将{foo:bar}放在字符串或新文件中,那么是的,它或多或少是JSON。JSON是一种数据交换格式。它看起来非常类似于JavaScript对象文本,但它们不一样。它更像XML。考虑一种语言,你可以写var s=;这是XML吗?不。请参阅Stack Overflow要求您在提问之前检查Javascript标准吗?前面已经说过,但我再说一遍:您的代码段中没有JSON。@Felix b不是JSON格式吗?不,我们是在Javascript的上下文中。它仍然是一个JavaScript对象文本。如果您将{foo:bar}放在字符串或新文件中,那么是的,它或多或少是JSON。JSON是一种数据交换格式。它看起来非常类似于JavaScript对象文本,但它们不一样。它更像XML。考虑一种语言,你可以写var s=;这是XML吗?否。但如果foo是可变的,例如,存在var foo=moo;它不会导致键成为变量的值吗?@Shadow-否。在对象文字语法中,你不能将变量用作键。谢谢,我在阅读键时感到困惑:@Tom,你在哪里认为这是低质量的?@ShadowWizard:/review/low quality posts列出了他以前的版本。但是如果foo是变量,例如,有var foo=moo;它不会导致键成为变量的值吗?@Shadow-否。在对象文字语法中,不能将变量用作键。谢谢,我在阅读键时感到困惑:@Tom,你在哪里看到这是低质量的?@ShadowWizard:/review/low quality posts列出了他以前的版本。它也是无效的JSON,因为它有var=and;它也是无效的JSON,因为它有var=and;在里面。