在我的 Javascript 控制台(在 Chrome 中)我正在尝试这个:
{ 'a' : 1 }
并获得
SyntaxError: Unexpected token :
但这有效:
['a', 1]
是什么赋予了???
最佳答案
这是因为花括号有两个用途 - 要么引入块,要么作为对象字面量的开始(后者是一个表达式)。
控制台无法分辨是哪个,所以它假设了一个语句块,后来才发现该块的内容不能解析为语句。
对于带有方括号的数组文字,不存在歧义。
可以通过更改上下文来解决歧义,以便 {...}
必须被解释为表达式而不是语句块,例如通过使其成为运算符的 RHS,将其包装在括号中,或将其作为函数参数传递等。
关于javascript - 为什么裸数组是有效的 Javascript 语法,而不是裸对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382024/