音ゲー、fps、DTM、プログラミング雑記置き場

ブログタイトル通りに雑記を垂れ流す。

【JavaScript】ifの判定が省略されるパターン

  • 下記パターン
    • if文でbの評価は行わない
var a = true;
var b = false;
if(a && b) console.log("true");

検証

  • 下記ソースをブラウザの開発者モードのコンソールにぶち込めば下記結果返ってくる
    • AND,ORで1桁同士の演算の2進数カルノー図かけば当たり前でANDは先発がFalseなら全体でFalse確定のため、後発の評価をする必要がない
    • 理屈でわかってもJavaScriptは変数にfunctionをそのまま代入可のため、思わぬハマりポイントになる
      • 下記でいうconditionAがクソ長メソッドだったらとか、if条件式がオペランドまみれとか
var conditionA = () => {
  console.log("A");
  return false;
}
var conditionB = () => {
  console.log("B");
  return true;
}
if(conditionA() && conditionB()); // Aのみ出力
if(conditionA() || conditionB()); // A,B両方出力