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

标签 javascript

在 javascript 中,我在执行以下操作时遇到错误:

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

有谁知道为什么吗?

最佳答案

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

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

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

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

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

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

相关文章:

javascript - JQuery从Json文件中读取

javascript - window.location = window.location 在 IE7 中不起作用

javascript - 这个 jquery/javascript 循环的更短替代方案?

javascript - JavaScript Canvas 中透明框后面的模糊

javascript - 更改自定义元素的原型(prototype)

javascript - 如何对 *ngFor 应用数量限制?

javascript - 迭代对象并访问其属性

php - php 脚本中的 Javascript 警报

javascript - 使用 mongodb Nodejs 进行异步循环

javascript - Bootstrap3 两个下拉菜单在同一行