gpt4 book ai didi

javascript - 正确检查javascript中的空值

转载 作者:行者123 更新时间:2023-11-30 08:38:30 24 4
gpt4 key购买 nike

所以我已经研究这个问题好几天了,似乎找不到真正有效的答案。我正在处理一个 api(具体来说是 trello),当提供回 json 对象时,它会在没有值的属性中放置一个 NULL 值。从 api 获取数据后,我正在解析数据,需要一种方法来跳过空值或删除它们。例如,这里是具有空值的对象的一部分:

{ name: 'blah',
due: null,
cards: [ [ [Object], [Object], [Object] ],
[ [Object] ],
[ [Object], [Object], [Object] ],
null,
[ [Object], [Object] ],
[ [Object], [Object], [Object], [Object] ],
[ [Object], [Object] ],
[ [Object], [Object], [Object] ] ] }

due 属性用作在其他地方提取的日期时间戳的覆盖。现在我正在使用这似乎有效:

if (!update.due) {
update.lastUpdated = update.history[0].date;
} else {
update.lastUpdated = update.due;
}

这是检查空值的唯一正确方法吗?这是我发现始终如一工作的唯一方法。此外,当从对象中删除值时,有没有一种方法可以检查,以便我可以完全删除该属性?:

"if Obj[attr] === null"

最佳答案

是否可以使用快捷方式 if (!update.due) 而不是 if (update.due !== null) 取决于值的范围这可能在 update.due 中,以及您希望该值范围内的测试结果是什么。


在 Javascript 中,您可以使用 === 检查特定值,或者您可以使用 == 允许类型转换,您可以检查任何真值或假值.

当你这样做时:

if (!update.due)

您正在检查 update.due 是否为错误值。错误值包括 null""0falseNaN未定义

如果您要做的只是查看 update.due 中是否有一些非零值数字或 bool 值,那么 if (!update.due) 很紧凑,可以很好地完成工作。

另一方面,如果你真的想明确知道它是否包含 null,那么你必须像这样专门测试 null:

if (update.due !== null)

因为 if (!update.due) 更短,所以它非常常用来检查 update.due 中是否有定义的值。您必须注意 0 不是您的有效值,因为 null0 在此特定测试中会给出相同的结果。但只要您测试的值不是空字符串或零,if (!update.due) 就可以正常工作。

关于javascript - 正确检查javascript中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132627/

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