为了账号安全,请及时绑定邮箱和手机立即绑定

{}[true]什么意思,为什么返回的是[true]

{}[true]什么意思,为什么返回的是[true]

momoyy123 2016-04-19 16:39:14
!{}[true]什么意思,为什么返回的是true
查看完整描述

1 回答

已采纳
?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

{}是一个对象,{}[true]就是获取{}对象里的名字叫true的属性。由于{}是一个空对象,里面没有一个叫true的属性,所以{}[true]返回undefined,而!{}[true]就相当于!undefined,即返回的是true。


{}[true],在console控制台里返回[true],是因为单纯写个{}语法上无法判断为一个表达式,也可能表示一代码段,函数就是用{}括起来的嘛。那语法上把{}解析为代码段,后面的[true]就是一个数组了,所以输出[true]。


那在前面加个叹号表示取反操作符,!{}[true]就是明确的一个表达式。而这个表达式的值就是true。

或者 var a = {}[true]; 赋值操作符=的右边也是一个明确的表达式。

查看完整回答
2 反对 回复 2016-04-19
  • 1 回答
  • 0 关注
  • 1999 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信