我正在研究jQuery方法,并看到他们以一些非常酷的方式使用&&
和||
语句。我很高兴能够实施这项技术,但对使用情况有一个快速的问题。
你能完全取代if():
if (willWrap && !this.options.wrap) return active
以下代码是否相同?
willWrap && !this.options.wrap && return active
答案 0 :(得分:1)
没有。 &&
需要表达式,return active
是完整语句,而不是表达式。
> willWrap && !this.options.wrap && return active
Uncaught SyntaxError: Unexpected token return(…)
答案 1 :(得分:0)
return
MDN Docs始终用于特定任务,即:
return;
→中断执行将功能恢复为undefined
return myResult;
→返回值。如果你正在调用一个函数并期望它return
某些东西(一个字符串,数字,布尔值,另一个函数调用等......)
你可能不需要if
语句(总是更具可读性),而是可以使用Conditional Operator ?:
:
// EXAMPLE 1: Return a/b value using Conditional Operator
function example1( statement ) {
return statement ? "FOO" : "BAR" ;
// return "FOO"(if condition is true), else return "BAR"
// Or use undefined instead of "BAR" if you don't want to provide a return value
}
// EXAMPLE 2: Return a/b value using Array and Boolean-to-numeric conversion
function example2( statement ) {
return ["FOO","BAR"][!+statement];
}
// EXAMPLE 3: Return value or undefined
function example3( statement ) {
return ["FOO"][!+statement];
}
console.log( example1(true && true) ); // "FOO"
console.log( example1(true && false) ); // "BAR"
console.log( example2(true && true) ); // "FOO"
console.log( example2(true && false) ); // "BAR"
console.log( example3(true && true) ); // "FOO"
console.log( example3(true && false) ); // undefined
看起来不合逻辑,因为您没有将return
包裹在if
内,但在return
function example1( statement ) {
return statement ? "FOO" : "BAR" ;
// Cannot put more code here
}
VS
function example1( statement ) {
if(statement) {
return "FOO";
}
// More code here
}