[英]Short circuit evaluation In javascript
我需要在代码中实现短路评估逻辑。 我读过一些文章http://en.wikipedia.org/wiki/Short-circuit_evaluation , http://www.grauw.nl/blog/entry/510了解一下吧。 但是他们没有详细介绍,我尝试了一些例子。
例如:
function a() {return true;}
function b() {return false;}
function c() {return true;}
表达
情况1) a() && b() && c();
情况2) a() || b() && c();
a() || b() && c();
情况3) a() && c() || b();
a() && c() || b();
情况1:
c()
将不会执行。
情况2:
b()
和c()
将不会执行
情况3:
b()
将不会执行。
我们应该从哪里了解这种短路评估?
我们应该从哪里了解这种短路评估?
但简短的版本是:
&&
或||
的左侧操作数 总是被评估,给我们左手边的值 。
使用&&
,如果左侧值为 falsey,则不评估右侧操作数; 表达式的值是左侧的值。
与||
,如果左侧值为 true,则不评估右侧操作数;否则为0。 表达式的值是左侧的值。
否则,将评估右侧操作数,并且表达式的结果为其值。
“ Falsey”值是用作布尔值时强制转换为false
任何值。 这些是0
, ""
, NaN
, undefined
, null
,当然还有false
。
“ Truthy”值是任何不虚假的值。
我的博客上的更多内容: JavaScript的功能强大的OR运算符( ||
) 。 (我的意思是做那个的&&
版本...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.