JavaScript中的代码"length === + length"是什么意思?

Tyl*_*ang 5 javascript

我只是阅读了底层源代码,并且无法从这段代码中获得观点:

_.each = _.forEach = function(obj, iterator, context) {
    if (obj == null) return obj;
    iterator = createCallback(iterator, context);
    var i, length = obj.length;
    if (length === +length) {   // why +length?
        for (i = 0; i < length; i++) {
            iterator(obj[i], i, obj);
        }
    } else {
        var keys = _.keys(obj);
        for (i = 0, length = keys.length; i < length; i++) {
            iterator(obj[keys[i]], keys[i], obj);
        }
    }
    return obj;
};
Run Code Online (Sandbox Code Playgroud)

为什么长度=== +长度?如果长度不是数字,我想这用于强制转换?有人可以帮我一把吗?

Sti*_*y21 5

+ length是将任何内容转换为数字的方法.

如果它是数字,则值不会更改,并且比较返回true.如果它不是数字,则断言是错误的.

什么是一元+用于Javascript?


归档时间:

查看次数:

449 次

最近记录:

11 年,5 月 前