【发布时间】:2025-12-06 05:05:03
【问题描述】:
我正在从事 Angular 项目,并且不时地检查 undefined 或 null 对象或其属性。通常我使用 lodash _.isUndefined() 见下面的例子:
this.selectedItem.filter(i => {
if(_.isUndefined(i.id)) {
this.selectedItem.pop();
}
})
我看不出有什么问题。但在审查上述代码时,我与我的同事进行了讨论。他告诉我,如果i 在if 语句之前得到undefined,那么它将抛出异常。相反,他建议我总是像这样检查i 或i.id:
if(!!i && !!i.id) {
this.selectedItem.pop();
}
我确信他想说的话与他在上面的代码中检查undefined 的方式不同。但后来我在想 lodash _.isUndefined 的目的是什么?
谁能告诉我什么是最好或干净的方法。因为对我来说!!i && !!i.id 根本不可读。
非常感谢。
【问题讨论】:
-
在您的 Angular 项目中,您使用的是打字稿还是仅使用 javascript?
-
if(!!i && !!i.id)比_.isUndefined进行不同检查!!!它将检查属性是否真实,而不是undefined。例如,它还将捕获null、0和""(空字符串)。此外,第一次隐式布尔转换!!i是多余的。 -
@Anouar 是的,我正在使用 TS
-
我通常使用 if (!variable)。那么如果变量是字符串并且等于“”或者是数字并且等于0,则条件为真
标签: javascript angular lodash