在javascript中返回值的双重感叹号

这个问题在这里已经有了答案:

  • 是什么 !! (不)没有运算符在JavaScript中? 31个答案

  • ! 算子否定,次要! 否定了初始否定的结果。 这基本上将右侧的任何内容都转换为布尔值(true或false)。

    !false // true
    !!false // false
    

    所以如果方法被定义,那么truefunction将被模拟为true

    document.createElement('video').canPlayType
    

    所以上面的函数返回。 我们不需要一个函数,我们需要一个明确的布尔值,所以我们两次否定它,因为function不是虚的(0,null,false,空字符串,NaN),所以它支持这种方法的浏览器返回true。

    !!document.createElement('video').canPlayType // true
    

    如果该方法不受支持,浏览器将返回undefined!undefined是真的, !true假的,所以!!document.createElement('video').LOL将返回false


    双重感叹号是一种JavaScript技巧,无论输入如何都会返回true / false。 在你的例子中,如果浏览器不支持视频标签,它将返回undefined。 !未定义是真的。 所以!! undefined是错误的。 如果浏览器支持视频,它将返回true。 !!真实也是如此。 这使您不必处理未定义的情况。

    链接地址: http://www.djcxy.com/p/12647.html

    上一篇: double exclamation on a return value in javascript

    下一篇: What does the double exclamation !! operator mean?