在页面基本示例上工作,我找到了这段代码:
function hasGetUserMedia() {
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
并且惊讶于:返回!!(exp)
有人可以解释这个'!!' ?这是换线吗?或者避免返回值?
我找不到这种(奇怪的)语法的用法和信息
谢谢!
答案 0 :(得分:1)
!!
将值强制转换为表示原始值是“truthy”还是“falsy”的布尔值。例如:
!!"foo" // true
!!"" // false
鉴于!
是否定运算符,使用它一次会将一个值转换为一个布尔值,该布尔值是它的truthy / falsy值的相反。如,
!"foo" // false
!"" // true
添加另一个!
否定否定,导致一个布尔值匹配原始非布尔值的真值/错误。
答案 1 :(得分:0)
下面的代码强制将表达式转换为布尔值。
function hasGetUserMedia() {
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
}