javascript – 为什么直接在Object文字上访问属性会抛出一个SyntaxError?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么直接在Object文字上访问属性会抛出一个SyntaxError?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试访问对象{}的属性
{}.a

我收到了错误

SyntaxError: Unexpected token .

一切都很好:

({}).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

原文链接:https://www.f2er.com/js/159403.html

猜你在找的JavaScript相关文章