gpt4 book ai didi

javascript - (obj.length === +obj.length) 比较什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:25:30 31 4
gpt4 key购买 nike

<分区>

我一直在读underscore.js源代码并在 _.each():

中注意到这个比较
(obj.length === +obj.length)

我知道 + 在变量将其转换为数字/整数之前。所以在这个原因

[1,2,3].length === +[1,2,3].length

是真的。如果我传入一个对象:

var obj = {a: 1, b: 2, c: 3};

+obj.length 产生 NaN

在最后一种情况下,我有

[1,2,3, {a: [4,5,6]}].length

这是 4。将其转换为数字.. 仍然是 4。

根据 else 情况,我可以看出这种比较可能是为了区分数组和对象,因为在 else 情况下它使用:

  for (var key in obj) { ...

我看不出有任何理由使用这样的比较。谁能解释一下?

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