【问题标题】:"obj != null" vs "! (obj == null)"?“obj!= null”与“!(obj == null)”?
【发布时间】:2019-05-01 08:04:52
【问题描述】:

一个朋友说我应该用! (obj == null),因为它比obj != null好,但是他不记得为什么要这样做了。

使用! (obj == null)有什么理由吗?

有什么不同吗?我的意思是,当obj 既不是null 也不是undefined 时,两者都应该返回true,对吗? (我有点困惑)

当答案都是相同的结果时,我想知道,这是否适用于所有 JavaScript 版本? (我的意思是,两者都适用于所有浏览器吗?)

【问题讨论】:

    标签: javascript performance comparison


    【解决方案1】:

    有什么理由使用! (obj == null)?

    有些人可能会发现它更容易(或更难)阅读。

    是否有任何变化,我的意思是,当 obj 不为 null 且不为 undefined 时,两者都应该返回 true,对吗? (我有点困惑)

    没有。它们的意思完全一样。

    当答案都是相同的结果时,那么我想知道,这对所有 java-script 版本都适用吗? (我的意思是,两者都适用于所有浏览器吗?)

    是的。

    【讨论】:

    【解决方案2】:

    ! (obj == null) 必须执行比较操作以及布尔操作。所以,它有点慢。

    另一方面,obj != null 是一个单一的比较。

    最快的是obj !== null,它不必进行类型强制。

    然而,以上三个案例在普通节目中的表现变化并不显着。

    【讨论】:

    • 因此,这个答案也是微不足道的 ...我也怀疑这个说法是否真的正确(JITed 代码实际上存在任何差异)。
    • “因此这个答案也无关紧要” - 很好的逻辑;)。 // 我也怀疑这个说法是否属实——继续做一个简单的性能测试。
    猜你喜欢
    • 2023-04-02
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2016-09-15
    相关资源
    最近更新 更多