삼항 조건 연산자   (삼항조건연사자도 값이라 변수에 할당된다)

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

+ Recent posts