Javascript中写两个!判断布尔值有何好处?

比如:

javascriptif(!!document.addEventListener){
  //do somthing
}
阅读 5.6k
5 个回答

强制将语句转为表达式

语句值为number:

!!1 // true
!!(4-2) // true
!!(4-4) // false

语句值为string:

!!"str" // true
!!""    // false

语句值为object:

var obj = {}
!!obj // true
obj = null
!!obj // false

语句值未定义 undefined:

var temp;
!!temp // false
temp = 1;
!!temp // true

语句值为null :

!!null // false

原因:

"解析器"没有想象中智能,所以用这种方式来告诉"它"。

类型转换,将任意变量转成bool值。

转布尔值!
!!

!!*** => Boolean(***)
优点:节省输入,珍爱生命
缺点:语义不明确,珍爱生命

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题