gpt4 book ai didi

javascript - + 前缀在这种情况下有什么作用?

转载 作者:行者123 更新时间:2023-11-28 13:44:57 25 4
gpt4 key购买 nike

这是来自 underscore 的一行代码。这一行中的加号前缀是什么?

if (obj.length === +obj.length) { // plus prefix?

最佳答案

添加 + 符号可以有效地将变量转换为数字,例如:

+"1" === 1;

但是,请注意

+"1" === "1"; // FALSE
+"1" == "1"; // TRUE

这是因为 == 会将其操作数转换为相同类型,而 === 则不会。

这意味着测试:

obj.length === +obj.length

本质上是在尝试测试 obj.length 是否为数字。

在 Underscore 中,此代码试图确定未知类型的变量是否具有名为 length 的属性以及它是否为数字。假设是,如果这些都为真,则可以迭代变量(如果它是数组)。

编辑

请注意,OP 的代码中有许多错误,其中最重要的是这种检测某物是否为数组(或类数组)的方法。以下对象会导致问题:

var footballField = {
covering: "astroturf",
condition: "muddy",
length: 100
};

我并不是提倡上述方法......只是解释别人的方法。

关于javascript - + 前缀在这种情况下有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15079021/

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