在javascript中,执行此操作时出现错误:

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


有人知道为什么吗?

最佳答案

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

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

这样做的原因是由于解析上下文,{O: 'Ida', I: 'Regreso'}仅当放在表达式上下文中时才被视为对象。最常见的方法之一是用括号将其括起来,如下所示:



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





您可以在withwithout括号(圆括号)中看到表达式的解释方式。

关于javascript - 获取哈希值而不将其分配给变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40250030/

10-12 06:24