논리곱(&&) 연산자는 두 개의 피연사자가 모두 true 일 때만 true를 반환하며 좌항에서 우항으로 평가를 진행한다.
'cat' && 'dog' // -> 'dog'
좌항 'cat'은 truthy 값이므로 true 로 판단되고 아직까지는 좌항의 값이 true이기 때문에 우항을 값을 평가해야 값을 반환할 수 있다.
우항 'dog' 또한 truthy 값이므로 true로 판단되고 논리 연산의 결과를 결정하는 두 번째 피연산자. 즉 문자열 'dog'를 반환한다.
'cat' || 'dog' // -> 'cat'
논리합(||) 연산자는 두개의 피연산자 중 하나만 true여도 true를 반환하며, 논리곱과 마찬가지로 좌항에서 우항으로 평가를 진행한다.
이때 'cat'은 truthy 값이므로 true로 판단되고 이미 좌항에서 true가 나왔기 때문에 우항은 평가하지 않고 바로 'cat'을 반환한다.
논리곱과 논리합 연산자는 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환한다. 이를 단축 평가라 하며, 단축 평가는 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략한다.
자바스크립트 함수 (1) (0) | 2022.03.04 |
---|---|
원시 값과 객체의 비교 (0) | 2022.03.02 |
동적 타입 언어와 변수 (0) | 2022.02.17 |
React.useState() (0) | 2022.02.14 |
컴파일러 언어 VS 인터프리터 언어 (0) | 2022.02.03 |
댓글 영역