gpt4 book ai didi

javascript - 这些嵌套的 'if typeof(bla) else' 语句可以做得更短吗?

转载 作者:行者123 更新时间:2023-12-03 17:58:12 24 4
gpt4 key购买 nike

我有一段代码是这样的。这段代码有效,但看起来很糟糕。

if(typeof(d.object) != "undefined"){
if(typeof(d.object.property) != "undefined"){
if(typeof(d.object.property.length) != "undefined"){
// do the code
}
else alert("error");
}
else alert("error");
}
else alert("error");

有什么方法可以重写它,使其功能相同但效率更高。特别是因为错误都是一样的。

最佳答案

假设您对 property 不感兴趣,如果它的长度为 null 或 0(或更普遍的 Jan Dvorak 所建议的“falsy”),那么您可能即使不使用 try/catch 也让它更具可读性:

if (d && d.object && d.object.property && d.object.property.length){

} else {
alert('error');
}

在大多数情况下,这是要走的路。

关于“虚假”,from the MDN :

Any value that is not undefined, null, 0, NaN, or the empty string (""), and any object, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement

关于javascript - 这些嵌套的 'if typeof(bla) else' 语句可以做得更短吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786996/

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