与 null 进行比较时,为什么在下划线中使用 ==.js而不是 ===

When comparing with null, why == is used in underscore.js and not ===?

本文关键字:js 下划线 null 比较 为什么      更新时间:2023-09-26

没有问题,我只是想知道,在浏览源代码时。在这里,为什么 === 比 JavaScript 中的 == 更快?它说===实际上更快,那么在这种情况下为什么要使用==呢?

_.each = _.forEach = function(obj, iteratee, context) {
    if (obj == null) return obj;

你会在这里得到你的答案

"=="

运算符在进行必要的转换后比较相等性,因为"==="不会进行任何转换。 因此,"==="运算符比"=="运算符快。但是在您的代码中,如果 obj 为 null 或未定义,则需要验证。例如。

var obj=null
obj==undefined //true
obj==null      //true
obj===undefined //false   **This is the difference
obj===null      //true

很可能是因为x == null true(仅)x = nullx = undefined。 即您通过一次比较捕获这两种情况。

这是松散比较有用的少数例外之一。