在javascript中返回值的双重感叹号
这个问题在这里已经有了答案:
!
算子否定,次要!
否定了初始否定的结果。 这基本上将右侧的任何内容都转换为布尔值(true或false)。
!false // true
!!false // false
所以如果方法被定义,那么true
的function
将被模拟为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