티스토리 뷰

2.12 nullish coalescing operator '??'

result = a ?? b;

 

null 병합 연산자는 아래 코드와 같은 동작을 한다. 먼저 나온 변수가 정의되어 있다면 해당 값을 반환하고, 아니면 뒤에 값을 반환한다.

result = (a !== null && a !== undefined) ? a : b;

조금 비슷한 용도로 '||'를 사용할 수도 있다. 가장 먼저 나오는 true 값을 반환하는 점을 이용한다.

let firstName = null;
let lastName = null;
let nickName = "Supercoder";

// shows the first truthy value:
alert(firstName || lastName || nickName || "Anonymous"); // Supercoder

 

그럼에도 아래처럼 다른 케이스가 있음에 주의하자.

let height = 0;

alert(height || 100); // 100
alert(height ?? 100); // 0

2.13 Loops: while and for (Java와 큰 차이 없음)

2.14 The 'switch' statement

스위치 문은 기존에 알고 있던 것과 큰 차이는 없는데, 몇가지 짚고 넘어가자.

switch 문의 비교는 타입까지 비교하는 '==='라는 점을 유의하자.

let arg = prompt("Enter a value?");
switch (arg) {
  case '0':
  case '1':
    alert( 'One or zero' );
    break;

  case '2':
    alert( 'Two' );
    break;

  case 3:
    alert( 'Never executes!' );
    break;
  default:
    alert( 'An unknown value' );
}

case 문에서 break가 없으면 그다음 case 문이 실행되는 것을 이용해 아래와 같은 로직을 작성할 수도 있겠다.

let a = 3;

switch (a) {
  case 4:
    alert('Right!');
    break;

  case 3: // (*) grouped two cases
  case 5:
    alert('Wrong!');
    alert("Why don't you take a math class?");
    break;

  default:
    alert('The result is strange. Really.');
}

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday