获取哈希值而不将其分配给变量

时间:2016-10-25 21:28:03

标签: javascript

在javascript中,我在执行操作时出错:

{O: 'Ida', I: 'Regreso'}['O']

有谁知道为什么?

1 个答案:

答案 0 :(得分:4)

因为{O: 'Ida', I: 'Regreso'}不是此上下文中的对象,所以它是一个块,其标签为O,后跟字符串文字表达式'Ida',然后是逗号运算符,带有另一个标签(这是一个语法错误)和另一个字符串文字表达。

(这是[] == {} vs {} == []的常见WAT的来源,在第一种情况下,它是“数组文字等于对象文字”,在第二种情况下它是“空块等于数组文字” (这是语法错误))

原因是因为解析上下文,{O: 'Ida', I: 'Regreso'}在放置在表达式上下文中时才会被视为对象。最常见的方法之一是用括号括起来,如下:

console.log(({O: 'Ida', I: 'Regreso'})['O'])

您可以看到表达式如何被解释为 with without 括号(圆括号)。