【发布时间】:2012-09-30 18:04:27
【问题描述】:
我想知道是否在某些情况下留下空的 if 语句:
else if(typeof console === 'undefined'){}
只是让代码绕过函数的其余部分这是一种公认且安全的工作方式,还是针对这些情况有其他推荐做法?谢谢。
【问题讨论】:
-
这很安全,但更好的方式是从函数返回
标签: javascript
我想知道是否在某些情况下留下空的 if 语句:
else if(typeof console === 'undefined'){}
只是让代码绕过函数的其余部分这是一种公认且安全的工作方式,还是针对这些情况有其他推荐做法?谢谢。
【问题讨论】:
标签: javascript
根据您提供给我的信息,我可以得出答案是否定的。它会起作用,但它的风格很糟糕。如果您想绕过该函数的其余部分,为什么不return; 或将大部分逻辑放在与之相关的if 语句中,这样就根本没有绕过?
【讨论】:
将if 分支留空既好又安全,我唯一要添加的是评论:
else if(typeof console === 'undefined')
{
//explanation why nothing has to go here
}
在没有看到其余代码的情况下,我不确定您如何使用它来“绕过其余功能”,可能有更好的方法来做到这一点。
【讨论】:
只是不要为你不想处理的案例写块。
如果你只想在console 存在时做某事,那么就这样做:
if(typeof console !== 'undefined'){
// your code
}
// else if(typeof console === 'undefined'){}
// you don't need that second part
或者我没有完全理解你的问题?
【讨论】:
与 Pioul 的回答相同,但我要补充一点,在 javascript 中检查存在的 imo 看起来更整洁 !! (非)运算符。
if(!!console){
// your code
}
// else if(!console){}
// you don't need that second part
【讨论】:
有时打印出调试信息很有用:-
if(typeof console !== 'undefined'){
console.log("debug info");
}
然后,在发布代码之前,简单地注释掉所有console.log的
// console.log("debug info");
这可以通过宏来完成。
它会留下一个空的 if 语句。但这不是编译错误,所以没关系。
注意,如果您要注释掉该行,使用大括号很重要。否则,下一行将依赖于 if 语句,这将是一种耻辱。
【讨论】: