我有以下代码:
function() {
if (foo && foo.bar !== baz) { //needed because foo can be undefined, so foo.bar always returns value
function1()
return;
}
if (foo) {
function2()
} else {
function1()
}
}
我想知道,从代码结构的角度来看,优化这些if语句的最佳方法是什么。
感谢所有答案!
答案 0 :(得分:1)
可能会:
if ((foo && foo.bar !== baz) || !foo) {
function1();
} else {
function2();
}
答案 1 :(得分:1)
((foo && foo.bar !== baz) || !foo) ? funtion1() : function2());
答案 2 :(得分:1)
这可以转换为单行:
foo && foo.baz === baz ? function2() : function1();
如果foo
为假,那么它将执行function1
,如果foo
是真实的,foo.baz !== baz
则仍会执行function1
。否则,它将执行function2
。
这种方法有效的原因是,如果foo
是真实而foo.baz !== baz
是false
,那么function2
仅在foo.baz === baz
为true
时才会执行
答案 3 :(得分:1)
一个例子可能是:
if (!foo || foo.bar !== baz) {
function1();
} else {
function2();
}
与kamituel的相似,但更短,也许更容易阅读。