Javascript js语法:如何解释:return!!(exp);

Javascript js语法:如何解释:return!!(exp);,javascript,syntax,return,Javascript,Syntax,Return,在处理一个页面基本示例时,我发现了以下代码: function hasGetUserMedia() { return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); } 并惊讶于:回归!!(exp) 有人能解释一下吗?是换行吗?还是为了避免返回值 我找不到关于这种(奇怪的)语法的用法或信息 谢谢 这个强制

在处理一个页面基本示例时,我发现了以下代码:

function hasGetUserMedia() {

return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);

} 
并惊讶于:回归!!(exp)

有人能解释一下吗?是换行吗?还是为了避免返回值

我找不到关于这种(奇怪的)语法的用法或信息


谢谢

这个
强制将值转换为表示原始值是“truthy”还是“falsy”的布尔值。例如:

!!"foo" // true
!!""    // false
鉴于
是求反运算符,使用它一次会将值转换为与其truthy/falsy值相反的布尔值。例如:

!"foo" // false
!""    // true

添加另一个
对求反进行求反,生成与原始非布尔值的真/假匹配的布尔值。

下面的代码强制将表达式转换为布尔值

function hasGetUserMedia() {

    return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);

}

好的,很抱歉重复,非常感谢您的精确性,强制返回值类型既棘手又有用。。。应该早点考虑的。。。