JavaScript/Basics

[JavaScript] if와 '?'를 사용한 조건 처리

Sonny Cucumber 2022. 3. 9. 23:57

 

'if'문 

알다시피 괄호 안 조건을 평가하고 결과가 true이면 코드 블록이 실행.

 

불린 타입으로의 변환

괄호 안의 표현식을 평가하고 그 결과를 불린 값으로 변환

  • 숫자 ㅇ, 빈 문자열 "", null, undefined, NaN은 변환 시 모두 false가 되고 이들을 falsy값이라고 부름
  • 이 외에는 변환시 true로 변환하여 truthy 값이라고 한다.

'else'절 

if문엔 else절을 붙일 수 있습니다. else 뒤에 이어지는 코드 블록은 조건이 거짓일 때 실행

예시:

let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');

if (year == 2015) {
  alert( '정답입니다!' );
} else {
  alert( '오답입니다!' ); // 2015 이외의 값을 입력한 경우
}

'else if'로 복수 조건 처리

let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');

if (year < 2015) {
  alert( '숫자를 좀 더 올려보세요.' );
} else if (year > 2015) { //이 부분 처럼
  alert( '숫자를 좀 더 내려보세요.' );
} else {
  alert( '정답입니다!' );
}

조건부 연산자 '?' (삼항연산자

조건에 따라 다른 값을 변수에 할당해줘야할 때가 있다

if 문과 else로 이루어진 조건문을 만들어줘도 되지만 더 간단하게

let result = condition ? value1 : value2;

이런 식으로 condition 의 값이 truthy 값이면 value1 아니면

value2가 되도록 할 수도 있다

 

부적절한 '?'

다중으로 삼항연산자 '?'를 쓸 수도 있지만

이런 식으로 많이 사용하면 안좋다고 함 (리액트에선 잘만 쓰던데..)

예시:

let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?', '');

(company == 'Netscape') ?
   alert('정답입니다!') : alert('오답입니다!');

if문을 쓸 때보다 짧아서 좋고 매력적일 수는 있지만 가독성이 떨어짐

대신 if문을 섞어 쓴다면 코드를 읽을 때의 우리 눈은 수직으로 움직이기에

수평으로 길게 늘어진 코드보다 여러 줄로 나뉘어 작성된 코드블록이 더 읽기 쉽다고한다

let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?', '');

if (company == 'Netscape') {
  alert('정답입니다!');
} else {
  alert('오답입니다!');
}