JavaScript对象文本语法错误

JavaScript对象文本语法错误,javascript,Javascript,以下代码在Chrome和Firefox中产生语法错误,但在Node.js中不产生语法错误: {"hello": 1} 但是,以下代码适用于任何地方: var x = {"hello": 1} {hello: 1} 此外,以下方法适用于所有地方: var x = {"hello": 1} {hello: 1} 对这种奇怪行为的解释是什么?第一个示例不是对象文字,而是一个。块包含语句。squence字符串文字、冒号、数字文字不是有效语句 第二个示例是对象文本 第三个示例也是一个块,但您已将

以下代码在Chrome和Firefox中产生语法错误,但在Node.js中不产生语法错误:

{"hello": 1}
但是,以下代码适用于任何地方:

var x = {"hello": 1}
{hello: 1}
此外,以下方法适用于所有地方:

var x = {"hello": 1}
{hello: 1}

对这种奇怪行为的解释是什么?

第一个示例不是对象文字,而是一个。块包含语句。squence字符串文字、冒号、数字文字不是有效语句

第二个示例是对象文本

第三个示例也是一个块,但您已将字符串文字和冒号替换为(这是允许的,但由于没有循环,因此毫无意义)


上下文在JavaScript中很重要。

第一个示例不是对象文本,而是一个。块包含语句。squence字符串文字、冒号、数字文字不是有效语句

第二个示例是对象文本

第三个示例也是一个块,但您已将字符串文字和冒号替换为(这是允许的,但由于没有循环,因此毫无意义)

上下文在JavaScript中很重要。

通过将代码包装在括号中,使
{“hello”:1}
成为
({“hello”:1})
,并成功地将其解析为对象文本

通常和其他地方(在Chrome/Firefox的控制台中),大括号被解析为块的分隔符,如:

/*imagine if (true) */ {
    "hello": 1 // <-- What's this syntax? It's meaningless.
}
通过将代码包装在括号中,使
{“hello”:1}
成为
({“hello”:1})
,并将其成功解析为对象文本

通常和其他地方(在Chrome/Firefox的控制台中),大括号被解析为块的分隔符,如:

/*imagine if (true) */ {
    "hello": 1 // <-- What's this syntax? It's meaningless.
}
尝试从类似于use{hello:1}的键中删除“”,在javascript中“”(引号)之间不需要键。尝试从类似于use{hello:1}的键中删除“”,在javascript中“”(引号)之间不需要键。