search

Home  >  Q&A  >  body text

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

比如:

javascriptif(!!document.addEventListener){
  //do somthing
}
PHPzPHPz2902 days ago270

reply all(5)I'll reply

  • 阿神

    阿神2017-04-10 15:10:41

    强制将语句转为表达式

    语句值为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
    

    原因:

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:10:41

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

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:10:41

    转布尔值!
    !!

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 15:10:41

    见js中两个感叹号的作用

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:10:41

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

    reply
    0
  • Cancelreply