有什么用!!在JavaScript中

有什么用!!在JavaScript中,javascript,Javascript,可能重复: 我刚刚遇到了使用的代码,这对我来说意味着不符合逻辑 app.isArray = Array.isArray || function(object) { return !!(object && object.concat && object.unshift && !object.callee); }; 使用有什么不同之处而不使用它 (我的猜测是,!!将结果转换为布尔类型。如果我的猜测是正确的

可能重复:

我刚刚遇到了使用
的代码,这对我来说意味着不符合逻辑

  app.isArray = Array.isArray || function(object) {
    return !!(object && object.concat
              && object.unshift && !object.callee);
  };
使用
有什么不同之处而不使用它


(我的猜测是,
!!
将结果转换为布尔类型。如果我的猜测是正确的,为什么会这样?

!!只需将内容转换为布尔值即可。以下是一些例子:

!! true === true
!! false === false

韦斯利·默奇已经发布了一个复制品的链接。那么为什么要发布答案呢?我在看到评论之前在手机上写下了答案。谢谢。现在我知道了!(sth)将始终返回布尔类型false(sth为true)!(!某事物)然后将假变真。:)请注意,在您的示例中
是冗余的,因为操作数已经是布尔数了……重复项不能回答OP的问题。干得好,雷基尔提供了答案。@WesleyMurch谢谢。”。我试着搜索它,但没有找到。也许我需要改进我的搜索关键字。:)不,很难找到那样的东西。我找到它的唯一途径是通过这里:(请大家自由投票!!!)卫斯理默奇再次感谢。这个链接真的很有用。