【问题标题】:Advantages of "string" === "string" with typeof [duplicate]“string”===“string”与typeof的优点[重复]
【发布时间】:2016-07-10 21:44:24
【问题描述】:

在 Javascript 中,=== 比较类型和值,而 == 只比较值。在下面的例子中,使用===== 有什么优势吗?

function roll( sides ){
    if ( typeof sides === "undefined" ) {
        sides = 6;
    }
    var result = Math.random() ;
    result = result * sides ;
    result = Math.floor(result) ;
    return result ;
};

根据typeof 文档,它只会返回一个字符串。这让我相信在这种情况下使用 === 并没有任何优势。

我想写我正在关注的教程的人出于习惯使用了===

【问题讨论】:

标签: javascript string types parameters equality


【解决方案1】:

在某些情况下,=== 可能比== 给您带来微小(通常可以忽略不计)的性能优势。

使用=== 也更安全,正是因为它还测试类型是否相同。

例如,考虑一下:

  • TRUE === 1FALSE === 0 都是 FALSE
  • TRUE == 1FALSE == 0 都是 TRUE

在大多数情况下,您想要的是前者而不是后者。

【讨论】:

  • 当类型匹配时,应该没有性能差异。
  • @LyeFish :我很想看到一些基准 :-)
  • 看看他们使用的算法。当类型匹配时,算法是相同的。当然,由于某些优化,浏览器总是会出现异常,但这两种方式都可以。
  • @LyeFish :嗯,我一直都知道=== 总是== 快,因为== 确实检查类型而=== 可以只需跳过该检查。你是说信息不正确?
  • @LyeFish :有道理。我更新了我的答案。谢谢你的信息!
猜你喜欢
  • 2011-03-01
  • 1970-01-01
  • 2012-01-06
  • 2017-06-07
  • 2012-09-27
  • 2011-09-24
  • 2011-03-12
  • 1970-01-01
  • 2017-05-04
相关资源
最近更新 更多