코드를 작성하다보면 어떠한 조건에 따라 다른 로직을 만들어야 할때가 있다.
그 때는 IF
와 ?
를 사용할 수 있다.
if(조건) { 참일때 실행될 코드 }
if뒤에 오는 괄호에는 조건식이 들어오게 되고, 그 조건이 참일 때 블럭({ })안의 코드가 실행이 된다.
if문의 실행 코드가 한줄이더라도 블럭을 사용하여 감싸주자!
if문의 괄호 안으로 들어오는 조건식은 그 결과를 true 또는 false로 변환한다.
앞의 게시글에서 한번 다룬적이 있는 내용인데,
조건식으로 들어오는 값이 그냥 데이터 타입만 들어올 수 있다.
그러면 그 데이터가 truthy한 값이냐 아니면 falsey한 값이냐를 따진 뒤, 그결과를 boolean으로 변환한다.
if('') { // 빈문자열은 falsey한 값으로 아래의 코드가 동작하지 않는다. ... } if(1) { // true ... }
falsey한 값인 false, 0, '', null, undefined, NaN, -0, 0n이 들어온다면 조건은 실행이 되지 않으며, 나머지 값들은 truthy한값으로 들어간다.
조건문을 사용하게 되면
조건이 참일 때 -> 로직1
조건이 거짓일 때 -> 로직2
이런식으로 조건에 따라 다르게 로직을 작성할 때 사용하는것이else
절이다.
또한 조건을 여러번 확인 해야할 때는 else if
절을 사용하면 된다.
let temp = 20; if(temp > 19) { console.log('반팔을 입으시오'); }else { console.log('외투를 입으시오'); } if(temp > 19) { console.log('반팔을 입으시오'); }else if(temp >5) { console.log('긴팔과 외투를 입으시오'); }else { console.log('내복과 패딩을 입으시오'); }
특정 조건에 따라 변수에 다른값을 할당 할때 사용하는 ?
연산자가 있습니다.
let 나이 = 19.9; let 미성년자여부 = (나이 < 20) ? '미성년자' : '성인';
위와 같이 ? 앞에서 조건을 따져 참일 때 2번째 값을 거짓일 때 3번째 값을 할당한다.
let 기온 = 20; let 옷 = (기온 > 20) ? '반팔' : (기온 > 10) ? '긴팔' : (기온 > 0) ? ' 코트 : '패딩과 내복';
'?' 연산자는 조건에따라 다른값을 '할당'할때 사용하는것을 권장함.