javascript - javascript中返回值的双重感叹

标签 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 - 测试某物是否是 javascript 中的类

javascript - 将url添加到多个标记到wordpress中的谷歌地图

javascript - POST 请求中缺少字段是否会引发错误?