TIL no.16-JS 3項演算子と単純条件文



条件文

if(조건식){
	// 실행문
} else if {
	// 실행문
} else {
	// 실행문
}
これはプログラミングの核心です.条件文です!
上から、条件が一致しているかどうかを個別にチェックし、すべての条件が満たされていない場合に構文を作成できます.
false、undefined、null、0、NaN、および空の文字列は、条件文でfalseと判断される.

さんこうえんざんし


条件文の構文を1行で簡単に表すことができます.
条件文実行文(True):実行文(else)
console.log(age > 19 ? '성인입니다.' : '미성년자입니다.');
年齢が19歳以上の場合、「成人」でなければ「未成年」という条件文が出てくる.
本当に簡潔できれいです

オーバーラップ


3つの演算子はif文のように内部で重複して記述することもできます.
const 조건1 = false;
const 조건2 = undefined;

const el = 조건1 
  ? '프론트엔드' 
  : 조건2 
    ? '백엔드' 
    : '풀스택';

console.log(el);
上のように重ねて使えますが、見るとめまいがします.このような可読性の悪い文はできるだけ書かないほうがいい.

if文と3つの演算子の違い


1.割当て

let hpMsg = hp <= 0 ? '체력이 없습니다.' : `현재 체력이 '${hp}'입니다.`
3つの演算子は、条件の結果値を変数に直接割り当てることができます.if文は変数に直接割り当てることはできません.

2. scope


if文は括弧で囲まれたブロック文で構成され、3つの演算子はブロック文を生成できません.だから.
グローバル変数は参照できますが、ゾーン変数は作成できません.
このような違いがあるため,if文の代わりに盲目的に3つの演算子を用いるべきではない.これらの違いを理解し、適切に使用することが望ましい.

単純な条件文


論理演算子&&&|を使用して、短い条件文を記述できます.
私の場合、通常は複数の条件をリストする必要がある場合に使用します.

&&


A&B、A、B.ドアが実行される場合は、すべての制約条件が本物でなければなりません.
let apple = prompt("사과인가요?");
let banana = prompt("바나나인가요?");

if (apple === "네" && banana === "네") {
  console.log("과일입니다.");
} else {
 console.log("과일이 아닌게 있습니다.");
}

||


A||B、AまたはB.1つの条件が本当であってもif文は実行されます.
if (answer === "수원" || answer === "오산" || answer === "병점") {
  console.log("가까우시네요.");
  } else {
   console.log("멀리 사네요.")
  }

&&,‖併用すると?

if (age > 16 || age < 20 && edu === "고등학교")
説明すると、年齢は16歳か20歳以下で高校に通う.
  • は左から順に説明される.
    (16歳以上)(20歳以下高校)
  • はその毒性を高めるために括弧で囲まれている.
  • if (age > 16 || (age < 20 && edu === "고등학교"))

    じゃんけんゲーム


    論理演算子を用いた条件文でじゃんけんゲームをした
    let arr = ["가위", "바위", "보"]
    let com 
    let play = document.querySelectorAll('.btn');
    let my = document.querySelector('.player') 
    let computer = document.querySelector('.computer');
    let gameResult = document.querySelector('.winner');
    
    // 컴퓨터 가위바위보 선택
    function random() {
        let ran = Math.floor(Math.random() * 3); // ran 값은 0,1,2 랜덤 추출
            com = arr[ran];               
    }
    
    function result( com , player ) { // 게임 결과 판단
              if( player == com){
                gameResult.textContent = "무승부"
              } else if((player == "가위" && com == "보")
                  || ((player == "바위" && com == "가위")
                ) || (player == "보" && com == "바위")) {
                gameResult.textContent = "승리"
              } else if((player == "가위" && com == "바위")
              || ((player == "바위" && com == "보")
            ) || (player == "보" && com == "가위")) {
                gameResult.textContent = "패배"
        }
    }
    
    play.forEach(btn => { // 플레이어 가위바위보 선택 
        btn.addEventListener('click', function(){
            random();
            player = this.textContent;
            my.textContent = player + " VS" 
            computer.textContent = com;
            result(com , player);
        })
    })