JavaScriptif语句优化
JavaScript if statement optimization
我有以下代码:
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 语句的最佳方法是什么。
感谢大家的回答!
可能是:
if ((foo && foo.bar !== baz) || !foo) {
function1();
} else {
function2();
}
((foo && foo.bar !== baz) || !foo) ? funtion1() : function2());
这可以转换成一行:
foo && foo.baz === baz ? function2() : function1();
如果 foo
为假那么它会执行 function1
如果 foo
为真但 foo.baz !== baz
那么它仍然会执行 function1
。否则执行function2
.
之所以有效,是因为如果 foo
为真且 foo.baz !== baz
为 false
,则仅当 foo.baz === baz
为 [=22] 时才执行 function2
=].
例如:
if (!foo || foo.bar !== baz) {
function1();
} else {
function2();
}
与 kamituel 的类似,但更短,可能更易于阅读。
我有以下代码:
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 语句的最佳方法是什么。
感谢大家的回答!
可能是:
if ((foo && foo.bar !== baz) || !foo) {
function1();
} else {
function2();
}
((foo && foo.bar !== baz) || !foo) ? funtion1() : function2());
这可以转换成一行:
foo && foo.baz === baz ? function2() : function1();
如果 foo
为假那么它会执行 function1
如果 foo
为真但 foo.baz !== baz
那么它仍然会执行 function1
。否则执行function2
.
之所以有效,是因为如果 foo
为真且 foo.baz !== baz
为 false
,则仅当 foo.baz === baz
为 [=22] 时才执行 function2
=].
例如:
if (!foo || foo.bar !== baz) {
function1();
} else {
function2();
}
与 kamituel 的类似,但更短,可能更易于阅读。