Javascript 用return语句短路
据我所知,使用逻辑AND&&运算符进行短路的工作原理如下: 假设我有表达式Javascript 用return语句短路,javascript,short-circuiting,Javascript,Short Circuiting,据我所知,使用逻辑AND&&运算符进行短路的工作原理如下: 假设我有表达式a和b,那么a和&b与a相同吗?b:a自 如果a是真的,那么结果将是b和 如果a错误,则结果将是a(甚至不尝试解析b) 这就是为什么以下(演示)代码抛出SyntaxError的原因: var add = function(a,b) { b && return a+b; // if(b) return a+b ... } 有没有一种方法可以使返回语句短路?二进制运算符需要两个部分都是表达式 retu
a
和b
,那么a和&b
与a相同吗?b:a
自
如果a
是真的,那么结果将是b
和
如果a
错误,则结果将是a
(甚至不尝试解析b
)
这就是为什么以下(演示)代码抛出SyntaxError的原因:
var add = function(a,b) {
b && return a+b; // if(b) return a+b
...
}
有没有一种方法可以使返回语句短路?二进制运算符需要两个部分都是表达式
return something
是一条语句,但不是一个表达式(它不会生成值,因为当函数结束时,值不会有用)
只用
if (b) return a+b;
还有一个更易于阅读的代码
阅读更多:
- (EcmaScript规范)
- (MDN)
return
是一条语句,不能将其用作AND表达式的一部分
如果出于某种原因需要,您可以将代码转换为单个return
语句:
if (b) return a+b;
/* else */ ...
(或多或少)等同于
return b && a+b || (...);
当然,不管怎样,在任何手工编写并用眼睛阅读的代码中