为什么直接访问Object字面量上的属性会抛出SyntaxError ?
Why does accessing a property directly on an Object literal throw a SyntaxError?
试图访问对象{}
的属性a
{}.a
我得到错误
SyntaxError: Unexpected token .
有父母一切都好:
({}).a
为什么我首先得到一个错误?是否存在歧义?
大括号被解释为块语句,而不是对象字面量。表达式语句不能以左花括号开始。
规格说明:
ExpressionStatement不能以左花括号开头因为这可能会使它与块产生歧义。此外,一个ExpressionStatement不能以
function
关键字开头,因为FunctionDeclaration可能会使它有歧义。
来源:http://es5.github.com/x12.html x12.4
{}是用来构建对象的。通常首先将新对象赋值给一个变量。
var o = {
a: "b"
};
console.log(o.a);
,但这也是可能的:
console.log({
a: "b"
}.a);
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- SyntaxError:属性id后缺少:
- JSON到带有Django的JS:SyntaxError:缺少:在属性id之后
- jQuery)SyntaxError:缺少:在属性id之后)
- Cheerio:SyntaxError:属性选择器格式不正确:对象全局
- 为什么直接访问Object字面量上的属性会抛出SyntaxError ?
- 未捕获的SyntaxError:意外的token变量;当试图编写一小段代码来比较JavaScript中两个对象的属性时
- 未捕获的SyntaxError:如果属性中使用了print,则意外标识符
- 未捕获的SyntaxError: missing)在属性选择器的参数列表后
- SyntaxError:属性列表javascript后缺少}
- SyntaxError:将数组发送到highcharts的数据属性时存在非法字符