复合条件来检测null值的类型:
var a =null ;
(!a&& typeof a === "object"); //true
请问这个得到的true的结果是怎么得出的,!a 这样处理有点费解~
复合条件来检测null值的类型:
var a =null ;
(!a&& typeof a === "object"); //true
请问这个得到的true的结果是怎么得出的,!a 这样处理有点费解~
!a
// 把a转换成boolean值, 并作逻辑非运算得到的值
!true
==> false
!false
==> true
这里的意思是如果a转成boolean是false
而且typeof a === object
, 那他就是null
实际上可以直接通过
a === null // 来判断是否null即可
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
!a
实际就是!null
,null
转为布尔型就是false
,所以!null
就是true
,而typeof null === "object"
也是true
的(参见 MDN:typeof 中“null”一节),所以最后AND的结果当然也true
啦。