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

+!{}[true] // 1 是什么意思?为什么输出1?

如题,此表达式中+是转换为数字,!是取非,但是{}[true]是什么意思?

正在回答

3 回答

!{}得到的是false,+是用来转换为数字的,false为0,[]数组内只要不为空都为true,所以结果为1


0 回复 有任何疑惑可以回复我~

我认为这个表达式的求值过程分解如下:(1){}[true];//undefined (2)!{}[true];//true (3)+!{}[true];//1

1 回复 有任何疑惑可以回复我~

在此页 按F12,在console输入“+!{}”、“+”、“+!”结果都是0;“+!{}[true]”、“+!{}[1]”、“+[1]”、“+!{}[false]”结果都是1."!{}"是false,“!{}[true]”是true,“+!{}[true]”相当于“+true”结果是1

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281102    人
  • 解答问题       1020    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

+!{}[true] // 1 是什么意思?为什么输出1?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信