Javscript

[JavaScript] 자바스크립트 단축평가 (&& , ||)

Wbeen 2023. 1. 14. 20:50


단축 평가

"논리합(||) , 논리곱(&&) 연산자는 연산 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환합니다.

 

 

 

논리곱(&&) 연산자

논리곱 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환합니다.

 

논리곱(&&) 연산자

 

첫 번째 "a" && "b" 코드에 경우 "a"가 Truthy 값이므로 true로 평가됩니다.

이때 &&연산자는 두 개의 피연산자가 모두 true로 평가되어야 하므로 두 번째 피연산자를 평가하기 전까지 결과를 알 수 없습니다.

이때 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자("b")를 그대로 반환합니다.

 

 

 

논리합(||) 연산자

논리합 연산자는 두 개의 피연산자 중 하나만 true로 평가되면 true를 반환합니다.

 

논리합

 

첫 번째 줄을 보면 첫 번째 피연산자 "a"가 Truthy 값이므로 true로 평가됩니다. 

이 시점에서 두 번째 피연산자를 평가하지 않아도 표현식을 평가할 수 있습니다.

이때 논리합 연산자는 논리 연산의 결과를 결정한 첫 번째 피연산자("a")를 그대로 반환합니다.

 

 

 

위 두개의 예시에서 볼 수 있듯이 논리합, 논리곱 연산자는 단순히 true / false 값을 반환하는 것이 아니라 논리 연산 결과를 결정하는 피연산자를 그대로 타입 변환 없이 반환합니다. 우리는 이것을 "단축 평가"라고 합니다.

 

 

단축 평가를 활용하면 if 문을 대체할 수 있습니다.

 

if문 대체

 

 

단축평가를 잘 활용하면 객체에서 프로퍼티를 참조할 때 null이나 undefined 경우를 처리하여 에러를 방지할 수 있습니다!!