Javascript 这两种对象声明方式之间有什么区别?

Javascript 这两种对象声明方式之间有什么区别?,javascript,json,Javascript,Json,我只是想知道这些JSON对象声明方式之间是否有任何区别,或者它们做的是相同的事情?声明对象的标准推荐方式是什么 根据我的测试,他们都给出了相同的结果 let data1 = { "record_1": [1,2,3], "record_2": [4,5,6] } let data2 = { record_1: [1,2,3], record_2: [4,5,6] } console.log(data1); console.log(data2); console.log(dat

我只是想知道这些JSON对象声明方式之间是否有任何区别,或者它们做的是相同的事情?声明对象的标准推荐方式是什么

根据我的测试,他们都给出了相同的结果

let data1 = {
  "record_1": [1,2,3],
  "record_2": [4,5,6]
}

let data2 = {
  record_1: [1,2,3],
  record_2: [4,5,6]
}

console.log(data1);
console.log(data2);
console.log(data1.record_1);
console.log(data2.record_1);
console.log(data1.record_2);
console.log(data2.record_2);
console.log(JSON.stringify(data1));
console.log(JSON.stringify(data2));
输出:

{
record_1:(3) [...],
record_2:(3) [...]
}
{
record_1:(3) [...],
record_2:(3) [...]
}
(3) [
1,
2,
3
]
(3) [
1,
2,
3
]
(3) [
4,
5,
6
]
(3) [
4,
5,
6
]
{"record_1":[1,2,3],"record_2":[4,5,6]}
{"record_1":[1,2,3],"record_2":[4,5,6]}

这两个声明在Javascript中都是有效的

let data1 = {
  "record_1": [1,2,3],
  "record_2": [4,5,6]
}

let data2 = {
  record_1: [1,2,3],
  record_2: [4,5,6]
}
但对于JSON,data2是无效的JSON语法。您可以在

另一个差异如下所示:

var obj = { "some key" : "Val" };  // Valid in JS

var obj = { some key : "Val" }; // invalid in JS

因此,对于JS来说,这两种减速在不同的情况下起着不同的作用。通常,data2类型声明被广泛使用。

这两种声明在Javascript中都是有效的

let data1 = {
  "record_1": [1,2,3],
  "record_2": [4,5,6]
}

let data2 = {
  record_1: [1,2,3],
  record_2: [4,5,6]
}
但对于JSON,data2是无效的JSON语法。您可以在

另一个差异如下所示:

var obj = { "some key" : "Val" };  // Valid in JS

var obj = { some key : "Val" }; // invalid in JS

因此,对于JS来说,这两种减速在不同的情况下起着不同的作用。通常,data2类型声明被广泛使用。

对象的属性名称为string类型,如果您提供任何其他类型,则会自动转换为string

var obj={1:one} var keyName=Object.keysobj[0];
log`key Name${keyName},类型为${typeof keyName}` 对象的属性名称为string类型,如果提供任何其他类型,则会自动转换为string

var obj={1:one} var keyName=Object.keysobj[0];
log`key Name${keyName},类型为${typeof keyName}` 它们本质上是一样的。一个区别是,当使用引号时,可以使用特殊字符作为键

// invalid
const noQuotes = {
    key with spaces: 123
}

// valid
const withQuotes = {
    "key with spaces": 123
}

它们本质上是一样的。一个区别是,当使用引号时,可以使用特殊字符作为键

// invalid
const noQuotes = {
    key with spaces: 123
}

// valid
const withQuotes = {
    "key with spaces": 123
}

第一个主要用于属性,这将导致无效语法:{i have spaces and:colons:value}。第一个主要用于属性,这将导致无效语法:{i have spaces and:colons:value}