gpt4 book ai didi

javascript - (obj.length === +obj.length) underscore.js 源代码中 === 后 + 的目的是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:59:34 27 4
gpt4 key购买 nike

在underscore.js源码的_.each方法中,使用了obj.length === +obj.length。在第一个 else if 条件中。为什么要用这个+运算符,有什么意义?

var each = _.each = _.forEach = function(obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
if (iterator.call(context, obj[i], i, obj) === breaker) return;
}
} else {
for (var key in obj) {
if (_.has(obj, key)) {
if (iterator.call(context, obj[key], key, obj) === breaker) return;
}
}
}

};

最佳答案

+ 运算符将其参数转换为数字。然后,他们使用“完全相同”运算符 === 来针对结果测试 obj.length

它的实际意思是,只有当 obj.length 是一个数字而不是(例如)字符串 "3" 时,测试才会成功。

关于javascript - (obj.length === +obj.length) underscore.js 源代码中 === 后 + 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com