搜尋

首頁  >  問答  >  主體

javascript内置类型null的检测?

复合条件来检测null值的类型:

var a =null ;
(!a&& typeof a === "object"); //true

请问这个得到的true的结果是怎么得出的,!a 这样处理有点费解~

PHP中文网PHP中文网2776 天前631

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-11 11:47:19

    !a实际就是!nullnull转为布尔型就是false,所以!null就是true,而typeof null === "object"也是true的(参见 MDN:typeof 中“null”一节),所以最后AND的结果当然也true啦。

    回覆
    0
  • 阿神

    阿神2017-04-11 11:47:19

    !a // 把a转换成boolean值, 并作逻辑非运算得到的值

    参考: MDN | javascript逻辑运算符

    !true ==> false
    !false ==> true

    这里的意思是如果a转成boolean是false而且typeof a === object, 那他就是null

    实际上可以直接通过

    a === null // 来判断是否null即可

    回覆
    0
  • 高洛峰

    高洛峰2017-04-11 11:47:19

    !a//true
    typeof a === "object"//true
    '!'会将值转换成布尔值并取其值的非值

    回覆
    0
  • 取消回覆