在javascript中,我在执行操作时出错:
{O: 'Ida', I: 'Regreso'}['O']
有谁知道为什么?
答案 0 :(得分:4)
因为{O: 'Ida', I: 'Regreso'}
不是此上下文中的对象,所以它是一个块,其标签为O
,后跟字符串文字表达式'Ida'
,然后是逗号运算符,带有另一个标签(这是一个语法错误)和另一个字符串文字表达。
(这是[] == {}
vs {} == []
的常见WAT的来源,在第一种情况下,它是“数组文字等于对象文字”,在第二种情况下它是“空块等于数组文字” (这是语法错误))
原因是因为解析上下文,{O: 'Ida', I: 'Regreso'}
在放置在表达式上下文中时才会被视为对象。最常见的方法之一是用括号括起来,如下:
console.log(({O: 'Ida', I: 'Regreso'})['O'])