javascript modern deepdive의 9장 내용입니다.
4개월전에 공부했던 내용인데 복습할겸 정리해봤습니다.
논리 연산 결과를 결정하는 피연산자를 타입 변환 없이 그대로 반환하는 것을 뜻합니다.
평가 도중에 결과가 확정된 경우 나머지 평가 과정을 생략합니다.
"hello" && "hi" //hi
논리곱은 피연산자 모두 true일 경우 true를 반환하는데
hello는 true이고 hi가 논리 연산의 결과를 결정하기 때문에 hi를 반환하게 됩니다.
"hello" && "hi" //hello
논리합은 피연산자중 하나만이라도 true인 경우 true를 반환하는데
hello가 true이고 hello가 논리 연산의 결과를 결정하기 때문에 hello를 반환하게 됩니다.
0이나 ""도 false로 평가되어서 단축 평가를 사용할때에는 예기치 않은 문제도 있었으나
아래의 두가지 연산자는 null or undefined만 검사하여 단축 평가보다 사용하기 편하다.
const el = {};
console.log(el?.value); //undefined
const value = null ?? "default string";
console.log(value); //default string
자주 사용하는데도 시간이 지나면 장점과 차이점이 명확히 잘 기억이 나지 않던 주제였습니다
이 글을 보면서 공부했던 내용이 다시 떠오르고, 옵셔널 체이닝의 검사 조건에 대한 새로운 지식도 명확히 알게 되었네요!
앞으로도 좋은 포스팅 계속 부탁드릴께요!