javascript - 为什么直接在对象文字上访问属性会抛出 SyntaxError?

标签 javascript

当尝试访问对象 {} 的属性 a

{}.a

我得到了错误

SyntaxError: Unexpected token .

有了 parent ,一切都很好:

({}).a

为什么我会在第一个地方出错?有歧义吗?

最佳答案

大括号被解释为 block statement ,而不是作为对象文字。不能以左花括号开始表达式语句。

规范指出:

NOTE An ExpressionStatement cannot start with an opening curly brace because that might make it ambiguous with a Block. Also, an ExpressionStatement cannot start with the function keyword because that might make it ambiguous with a FunctionDeclaration.

来源:http://es5.github.com/x12.html#x12.4

关于javascript - 为什么直接在对象文字上访问属性会抛出 SyntaxError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8553792/

相关文章:

javascript - 在 Markdown 服务器或客户端中格式化? Node js

javascript - knockout : Function Scope Error

javascript - 如何在canvas和js中旋转对象;我的例子没有按照我的预期旋转

javascript - 使用 Javascript 在当前窗口后面打开一个窗口?

javascript - 如何停止 animatePNG 动画?

javascript - 它不会在控制台内面向对象的 JavaScript 中显示 "this"对象

javascript - GreaseMonkey Hello World

javascript - NextJS getServerSideProps() 具有多个获取请求

javascript - Laravel 使用 javascript 的正确过程。

javascript - 获取所有类型的电影