javascript - 为什么裸数组是有效的 Javascript 语法,而不是裸对象?

标签 javascript syntax

在我的 Javascript 控制台(在 Chrome 中)我正在尝试这个:

 { 'a' : 1 }

并获得 SyntaxError: Unexpected token :
但这有效:
 ['a', 1]

是什么赋予了???

最佳答案

这是因为花括号有两个用途 - 要么引入块,要么作为对象字面量的开始(后者是一个表达式)。

控制台无法分辨是哪个,所以它假设了一个语句块,后来才发现该块的内容不能解析为语句。

对于带有方括号的数组文字,不存在歧义。

可以通过更改上下文来解决歧义,以便 {...}必须被解释为表达式而不是语句块,例如通过使其成为运算符的 RHS,将其包装在括号中,或将其作为函数参数传递等。

关于javascript - 为什么裸数组是有效的 Javascript 语法,而不是裸对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382024/

相关文章:

linux - 为什么简单的退出程序不起作用?

javascript - 奇怪的 JavaScript 语法,看起来像 Python 元组

java - 为什么这些分号不会产生错误?

c# - 此 C# 运算符在此代码段中如何工作?

javascript - HTML & JS 无限后台循环

javascript - 在 Javascript 中加载脚本

javascript - Angular 2+ window.onfocus 和 windows.onblur

javascript - 使用 d3.js 强制有向图

c - 在 C 中识别此 typedef 结构的各个部分?

javascript onblur/onfocus 函数不工作