자바스크립트 AND/OR 연산

웅평·2023년 7월 6일
0

Truthy 값과 Falsy 값

불린 타입의 값 뿐만아니라 다른 타입의 값도 불린 값처럼 평가될 수 있는데 false 처럼 평가되는 값을 falsy 값, true 처럼 평가되는 값을 truthy값이라고 부른다

AND/OR

AND 연산자는 왼쪽 피연산자가 falsy값일 때 왼쪽 피연산자를, 왼쪽 피연산자가 truthy값일 때 오른쪽 피연산자를 리턴

OR 연산자는 왼쪽 피연산자가 falsy 일 때 오른쪽 피연산자를, 왼쪽 피연산자가 truthy 일 때 왼쪽 피연산자를 리턴

// AND 연산
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false

// OR 연산
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false

console.log(null && undefined); // null
console.log(0 || true); // true
console.log('0' && NaN); // NaN
console.log({} || 123); // {}

AND 와 OR 연산자의 연산 우선순위

AND 와 OR 연산자 사이에서는 AND 연산자의 우선순위가 더 높다

console.log(true || false && false); // true
console.log((true || false) && false); // false

console.log('hi' || NaN && false); // hi
console.log(('hi' || NaN) && false); // false

null 병합 연산자 ??

null 병합 연산자 왼편의 값이 null 이나 undefined라면 연산자 오른편의 값이 리턴
연산자 왼편의 값이 null 이나 undefined가 아니라면 연산자 왼편의 값이 리턴

const example1 = null ?? 'I'; // I
const example2 = undefined ?? 'love'; // love
const example3 = 'Python' ?? 'JavaScript'; // Codeit

console.log(example1, example2, example3); // I love Python

or 연산자와 비교

const t1 = false || 'hi';
const t2 = false ?? 'hi';

console.log(t1); // hi
console.log(t2); // false

const w1 = 0 || 8;
const w2 = 0 ?? 8;

console.log(w1); // 8
console.log(w2); // 0

연산자 우선순위

참고
코드잇

0개의 댓글