삼항 조건 연산자 (삼항조건연사자도 값이라 변수에 할당된다)
var num = 0;
var kind = num ? (num > 0 ? '+' : '-') : '0';
console.log(kind);
num이 0이면 불리언타입으로 강제변환이 돼서 부정값으로 바뀐다.
그래서 최종적으로 거짓값인 '0'을 출력함
num이 양수나 음수라면? 실험해보니 양수, 음수는 불리언타입으로 바뀌면 참이 되더라
그래서 진실값을 고르게 되고 앞선 조건의 '+'나 '-'가 나온다.
switch문
var num = 5;
var month;
switch(num){
case 1:month ='1'
case 2:month ='2'
case 3:month ='3'
case 4:month ='4'
case 5:month ='5'
case 6:month ='6'
case 7:month ='7'
case 8:month ='8'
case 9:month ='9'
case 10:month ='10'
case 11:month ='11'
case 12:month ='12'
default: month ='invail'
}
console.log(`${month} month`);
출력값: invail month
case 11 값을 만족한 뒤 참으로 바뀐다.
이때 탈출하는 break문이 없으면 밑의 case문도 참으로 인정해서 마지막 할당인 default값을 출력했다.
레이블문을 쓰는 이유
반복문에도 break;를 쓸수 있음에도 레이블에 break를 쓴다는 게 장점이라고 한다.
이유를 찾아보니 만약 2중, 3중 반복문이 있다면 가장 안쪽 반복문에서 조건을 충족해서 break;를 걸어도 그 밖의 반복문은 돌아간다. 레이블문을 쓴다면 break 가장밖의반복문 레이블; 이런 코드를 통해 반복문을 완전히 벗어날 수 있다.
continue 문
break 문처럼 탈출하지 않고 증감식으로 실행 흐름을 이동시킨다.
var string = 'hello world';
var search = 'o';
var count = 0;
for(var i =0; i <string.length; i++){
if(string[i] !== search) continue;
count++;
}
console.log(count);
countinue를 쓰지 않는다면 if문 안에 count를 써야할 것이다.
'진행중 > 모던 JS - 1회독 공부기록' 카테고리의 다른 글
공부기록 - 객체 (0) | 2022.08.20 |
---|---|
공부기록 - 변환과 단축 평가 (0) | 2022.08.20 |
공부기록 - 데이터 타입 (0) | 2022.08.19 |
공부기록 - 표현식과 문 (0) | 2022.08.18 |
공부기록 - 변수 (0) | 2022.08.18 |