JavaScript | 단축 평가 (short circuit evaluation)

설탕·2022년 1월 21일
0

||: 첫 번째 truthy를 찾는 OR 연산자

|| 연산자는 첫 번째 truthy를 반환한다.
피연산자에 truthy가 없다면 마지막 값을 반환한다.

console.log( null || 0 || 1 ); // 1 (1은 truthy임)
console.log( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)

활용 1) 변수 또는 표현식으로 구성된 목록에서 첫 번째 truthy 얻기

||을 사용하면 실제 값이 들어있는 변수를 찾고, 그 값을 보여줄 수 있다.

let firstName = "";
let lastName = "";
let nickName = "바이올렛";

alert( firstName || lastName || nickName || "익명"); // 바이올렛

변수 모두에 값이 없는 경우엔 익명을 보여준다.

활용 2) 연산자 왼쪽 조건이 falsy일 때만 명령어를 실행하고자 할 때

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)와 같다.

profile
공부 기록

0개의 댓글