多変量条件を評価するためのjavascript関数を作成しているときに、Javascriptのパーサーエラーのように見えるものに出くわしました。何かを忘れているのか、それとも適切な行動なのか教えてください。
私の関数では、次AND
のようないくつかの変数の結果を返します。
return
// a comment, for kicks
a1 && a2
&&
b1 && b2
&&
// another comment
c1 && c2
&&
d1 && d2
;
ただし、これらの変数のすべてに明示的な値が含まれている場合でも、関数は期待されるのではなくtrue
戻ります。undefined
true
この式を返すいくつかのバリエーションを試しましたが、次のことがわかりました。
- 複数行の式-失敗
- 1行の式-動作します
- 表現をparethesesでラッピング-動作します
- 複数行の式を変数に設定してから、変数を返す-動作します
実例を参照してください:http://jsfiddle.net/drzaus/38DgX/
なぜこれが起こるのか誰かが説明できますか?