在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