gpt4 book ai didi

javascript - 在 JavaScript 或 underscore.js 中可能出现负对象长度?意义?

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:21 27 4
gpt4 key购买 nike

我正在查看 Underscore.js 的源代码库,专门用于 map方法(该页面第 85 行左右,并复制到此处):

  _.map = function(obj, iterator, context) {
var results = [];
if (obj == null) return results;
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
each(obj, function(value, index, list) {
results[results.length] = iterator.call(context, value, index, list);
});
if (obj.length === +obj.length) results.length = obj.length;
return results;
};

完全简单,除了以下行

    if (obj.length === +obj.length) results.length = obj.length;

现在,我读它的意思是“如果对象长度不是负数...”
如果我的解释是正确的,这意味着它可能是!

所以,亲爱的专家们,对于什么样的对象可能

    obj.length === +obj.length 

false?我对 === 的理解意味着如果 obj.length 的类型与 + 的类型不匹配,它可能返回 false obj.length,但我的知识不足。 + 可以对 obj.length 可能是什么类型的东西做什么样的事情? x === +x 是某种我不知道的通用惯用测试吗?它是对 underscore.js 中更深层出现的某种特殊情况的响应,例如,underscore.js 是否出于某些常规目的分配和跟踪负 object.lengths?非常感谢指导和建议。

最佳答案

我认为这是在测试 typeof obj.length === 'number'

相对于如果它是一个长度值为 '2 days' 的对象

所以它知道它是否是一个像这样的对象:

var obj = { app: 'doctor', length: '45 min' };

对比

var obj = [ 0, 2, 1];

关于javascript - 在 JavaScript 或 underscore.js 中可能出现负对象长度?意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783289/

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