Front-End/JavaScript

[JavaScript] AND, OR 연산자 정리 (Feat. null 병합 연산자)

시니철 2024. 9. 10. 18:59

Boolean true? false?

False(Falsy) - false, null, undefined, NaN, 0, ""
Ture(Truthy) - 나머지 값들 ! {}, [] 빈 객체, 배열도 포함


AND 연산자

왼쪽 값이 ture이면 오른쪽 값을 리턴하고, 왼쪽 값이 false이면 왼쪽 값을 리턴

console.log(true && true) // true (오른쪽 값 리턴)
console.log(true && false) // false (오른쪽 값 리턴)
console.log(false && true) // false (왼쪽 값 리턴)
console.log(false && false) // false (왼쪽 값 리턴)

 

OR 연산자

왼쪽 값이 ture이면 왼쪽 값을, 왼쪽 값이 false이면 오른쪽 값을 리턴 (AND 연산자와 반대)

console.log(true || true) // true (왼쪽 값 리턴)
console.log(true || false) // true (왼쪽 값 리턴)
console.log(false || true) // true (오른쪽 값 리턴)
console.log(false || false) // false (오른쪽 값 리턴)

 

AND와 OR의 연산 방식

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

function print(value) {
    const message = value || 'hwichul';

    console.log(value);
}

print(); // hwichul
print('JavaScript'); // JavaScript

 

AND와 OR 연산자 여러 개 사용하면 우선 순위가 존재한다.

AND 연산자가 OR 연산자보다 우선 순위가 더 높다.

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

null 병합 연산자

물음표 두개(??)를 사용해서 null, undefined 값을 가려내는 연산자이다.

const example1 = null ?? 'I';
const example2 = undefined ?? 'love';
const example3 = 'eunju' ?? 'JavaScript';

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

 

연산자 왼편의 값이 null, undifined 값이면 오른편 값이 리턴되고, 연산자 왼편의 값이 null, undifined 값이 아니라면 왼편의 값이 리턴되는 원리이다. (OR 연산자와 헷갈릴 수 있음.)