变量上两个 not (!!) 运算符的用途是什么

What is the use of two not (!!) operator on a variable

我正在学习 browser detection 上的教程,该教程在 return 中使用了两个 !! not 运算符。我想知道使用 2 的意义是什么!在代码中。

function supports_geolocation() {
  return !!navigator.geolocation;
}

我相信!!navigator.geolocation === navigator.geolocation

如果不正确请纠正我,让我知道在这里使用两个 not 运算符的重要性。

它强制 returns 布尔值。

// navigator.geolocation is GeoLocation object
navigator.geolocation === true // return false
!!navigator.geolocation === true // returns true