JavaScript对象文字语法错误

前端之家收集整理的这篇文章主要介绍了JavaScript对象文字语法错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下代码在Chrome和Firefox中产生语法错误,但不会在Node.js中产生语法错误
{"hello": 1}

但是,以下代码无处不在:

var x = {"hello": 1}

此外,以下作品无处不在:

{hello: 1}

这个奇怪的行为有什么解释?

解决方法

@H_403_17@ NodeJS REPL evaluates code as an expression通过将代码包含在括号中,导致{“hello”:1}成为({“hello”:1}),它被成功解析为对象字面值.

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

/*imagine if (true) */ {
    "hello": 1 // <-- What's this Syntax? It's meaningless.
}

{hello:1}成功解析,因为这个上下文中的hello有一个label的含义:

/*imagine if (true) */ {
    hello: 1;
} //        ^-- Automatic Semicolon Insertion

猜你在找的JavaScript相关文章