问答详情
源自:2-2 [JavaScript]运算符

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

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

提问者:Sharon_zd 2015-08-23 23:52

个回答

  • 一朵梨花压海棠的小虫周伯通
    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