a ?? b
로 사용하는데, a가 null도 아니고 undefined도 아니면 b, 그 외의 경우에는 a로 평가된다.
let firstName = null;
let lastName = null;
let nickName = "바이올렛";
// null이나 undefined가 아닌 첫 번째 피연산자
alert(firstName ?? lastName ?? nickName ?? "익명의 사용자"); // 바이올렛
OR연산자 '||'
는, 첫 번째 truthy 값을 반환한다(즉, null, undefined 뿐만아니라 0,"" 등도 반환하지 않게 된다.)
nullish 연산자 '??'
는 첫 번째 defined된 값을 반환하게 된다. null undefined 뿐만아니라 숫자 0도 함께 들어올 수 있는 변수를 다룰 때 사용하기 좋다.
2중 3중으로 작성 된 반복문에서, 가장 하위의 반복문의 일정 조건이 맞으면 반복문을 빠져나와야 하는 경우가 종종 생길 수 있다.
그 때 사용할 수 있는 레이블.
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나옵니다.
if (!input) break outer; // (*)
// 입력받은 값을 가지고 무언가를 함
}
}
alert('완료!');
함수 표현식은 함수를 변수 안에 담는 방식, 함수 선언식은 변수에 담지 않고 선언하는 방식이다.
let foo = function() { // 함수 표현식
...
};
function bar() { // 함수 선언식
};
두가지 방식의 차이중 가장 큰 것은, 호이스팅에 관한 내용이 될 것 같다. 호이스팅은 좀 더 나중에 다시 정리하도록 하자.