<分区>
我正在看一本 html 5 的书,它包含了一点点 js。双感叹号是什么意思?
return ! ! document.createElement('video').canPlayType;
标签 javascript
<分区>
我正在看一本 html 5 的书,它包含了一点点 js。双感叹号是什么意思?
return ! ! document.createElement('video').canPlayType;
最佳答案
!
运算符取反,辅助 !
取反初始取反的结果。这基本上将右侧的任何内容转换为 bool 值( true 或 false )。
!false // true
!!false // false
因此,如果定义了方法,则为 truthy 的 function
将被类型转换为 true
。
document.createElement('video').canPlayType
所以上面的代码返回了一个函数。我们不想要一个函数,我们想要一个明确的 bool 值,所以我们将它取反两次,因为 function
不是假的(0, null, false, empty string, NaN )然后它为浏览器返回 true支持这种方法。
!!document.createElement('video').canPlayType // true
如果不支持该方法,浏览器将返回undefined
。 !undefined
为真,!true
为假,所以 !!document.createElement('video').LOL
将返回 假的
关于javascript - javascript中返回值的双重感叹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512689/
相关文章:
javascript - 使用 AJAX/JSON 验证 Twitter 帐户是否存在
javascript - 我的 Firefox 不支持 HTML5 视频,但可以在其他地方使用
javascript - 无法使用 setTimout 在小书签中不起作用
javascript - 重新校准使用 css 变换的 x 和 y 偏移
javascript - Vue3 : injection "Symbol(pinia)" not found
javascript - ko observable 没有显示值(value)
javascript - 测试某物是否是 javascript 中的类