nullish coalescing operator (||와 ?? 차이)
개발/FrontEnd Interview
2021. 8. 22. 13:21
nullish coalescing operator (||와 ?? 차이) 자바스크립트에는 널 병합 연산자라는 것이 있다. 문법적으로는 ??으로 쓰인다. 왼쪽 피연산자가 null이거나 undefined일때 오른쪽 피 연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환한다. 근데 ||도 비슷한 효과를 가지고 있다. 다만, ||는 null, undefined 뿐만 아니라 falsy값에 해당하는 경우도 오른쪽 피연산자를 반환한다. 즉 ||를 사용하면 falsy값인 " "나 0, NaN일때에도 오른쪽 피연산자가 반환된다. 왜냐하면 ||는 왼쪽 피연산자를 강제로 boolean으로 형변환하게 때문이다. 이러한 " "나 0, NaN의 falsy값을 유효한 값으로 생각한 경우에는 ||를 사용하면 안되는 것이다.