ショートサーキット、短絡評価って名前をいまさら知った。
論理式のAND((&&で論理積))とOR((||で論理和))で、左辺で確定する場合に、右辺を評価しない事を、ショートサーキット(短絡評価)っていうらしい。そういえば、以前そんな単語を聞いた事があるような気もします。内容自体はたいした事じゃないんだけど、名前を知ってるとより強く意識できるので、書いておきます。割と常識扱いされてるけど、それゆえに入門書とか解説に登場しないものかも。
言語によらない事だと思いますが、例はjavascriptです。
ANDの場合
var foo = false; foo && bar;
fooがfalseの時点で、falseが確定するので、barは評価されない。なのでvar barしてなくてもbar is not definedって怒られない。
ORの場合
var foo = true; foo || bar;
fooがtrueの時点で、trueが確定するので、barは評価されない。以下、同上。
ちょっと余談
var foo = (1 && 0);
ショートサーキットの例を書いてて気がついたけど、JavaScriptって、これでfooはfalseにならないんだね。0が入ってた。左辺の1がtrueなので、右辺の0が評価されて、それが代入されたってことなのかな?PHPだと、これでfalseが代入されるから便利だったんですけど。PHPが特殊なのかJavaScriptが特殊なのか、どっちだろう?