||
: 첫 번째 truthy를 찾는 OR 연산자||
연산자는 첫 번째 truthy를 반환한다.
피연산자에 truthy가 없다면 마지막 값을 반환한다.
console.log( null || 0 || 1 ); // 1 (1은 truthy임)
console.log( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)
||
을 사용하면 실제 값이 들어있는 변수를 찾고, 그 값을 보여줄 수 있다.
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
변수 모두에 값이 없는 경우엔 익명을 보여준다.
true || alert("not printed");
false || alert("printed");
첫 번째 줄의 ||
연산자는 true를 만나자마자 평가를 멈추기 때문에 alert가 실행되지 않는다.
&&
: 첫 번째 falsy를 찾는 AND 연산자&&
연산자는 첫 번째 falsy를 반환한다.
피연산자에 falsy가 없다면 마지막 값을 반환한다.
console.log( 1 && 2 && null && 3 ); // null
console.log( 1 && 2 && 3 ); // 마지막 값, 3
&&
의 우선순위가||
보다 높다.
a && b || c && d
는(a && b) || (c && d)
와 같다.