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

来源:2-2 [JavaScript]运算符

Sharon_zd

2015-08-23 23:52

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

写回答 关注

3回答

  • 一朵梨花压海棠的小虫周伯通
    2015-12-15 11:43:18

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


  • joker_0042
    2015-10-12 17:11:18

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

  • 用户1099417
    2015-09-06 14:42:43

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

JavaScript深入浅出

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

281112 学习 · 1020 问题

查看课程

相似问题