JS - if와 '?를 사용한 조건처리`

가가·2020년 9월 27일
0

js

목록 보기
9/11
post-thumbnail

if문

let year = prompt('ECMAScript - 2015 명세는 몇 년도 출판?','');

if (year ==2015){
	alert("정답");
    alert("아주똑똑");
   }

if 문을 쓸 때는 조건이 참일 경우 실행되는 구문이 단 한줄이더라도 중괄호를 사용해 코드를 블록을 감싸자 !

불린형으로의 변환

  • 숫자 0, 빈 문자열"",null,undefined,NaN은 불린형으로 변환 시 모두 false. 이외의 값은 true
if(0){
	...
} // 절대 실행 X, falsy
if(1){
	...
} //항상 실행, truthy

else절

let year prompt('ECMAScript-2015 명세는 몇 년도 출판?','');

if(year==2015){
	alert('정답!');
}else{
    alert('오답!');
}

else 뒤에 이어지는 코드블록은 조건이 거짓일 때 실행.

else if로 복수 조건 처리하기

let year prompt('ECMAScript-2015 명세는 몇 년도 출판?','');

if(year==2015){
	alert('정답!');
}else if(year>2015){
    alert('숫자를 좀 더 내려보세요');
}else{
	alert('정답!');
}

마지막에 붙은 else는 필수가 아닌 선택.

조건부 연산자 '?'

let result = condition ? value1 : value2;

평가대상인 condition이 truthy라면 value1이, 그렇지 않다면 value2가 반환.

//연산자 우선순위 규칙에 따라, 비교연산 'age > 18'이 먼저 실행.
//조건문을 괄호로 감쌀 필요 X.
let accessAllowed = age > 18 ? true : false;

//사실 비교연산잔 자체가 true나 false를 반환하기 떄문에 위 예시에서 물음표 연산자를 사용하지 않아도 된다.
let accessAllowed = age > 18;

다중 '?'

let age = prompt('나이를 입력해주세요',18);

let message = (age < 3) ? '애기 안뇽?':
	(age < 18)? '안녕':
    (age < 100) ? '환영합니다':
    '나이가 아주 많으시거나, 나이가 아닌 값을 입력하셨군요!;
    
alert (message);

부적절한 '?'

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

(company == 'Netscape')?
	alert('정답') : alert ('오답');

개발자의 입장에선 if문을 사용할 때 보다 코드길이가 짧아진다는 점 때문에 ?를 if대용으로 쓰는 게 매력적일순 있지만 가독성이 떨어짐.

profile
주니어개발자

0개의 댓글