[Javascript] 단축평가

·2022년 10월 14일
0

초보 주니어 개발자의 입장에서 본인의 이해를 위해 쓴 글이므로 설명이 부정확하거나 모호할 수 있습니다.
글에 잘못된 부분이 있다면 댓글로 남겨주세요.

개발을 하다보면 조건문을 쓸 일이 정말 많다.
하지만 매번 if( 조건 ) { 실행할 것 }의 형식으로 조건문을 작성하는것은 한두줄일땐 괜찮지만 코드가 길어질수록 복잡해보이고 저 코드를 줄이고싶다는 마음이 커진다.
그래서 간단하게 쓸 수 있는 삼항연산자( 조건 ? true일때 실행할 것 : false일때 실행할 것)를 자주 쓰게 되는데 true일때만 혹은 false일때만 실행하고 싶을때에는 둘 중 한자리에 null을 넣어줘야 한다.
if 조건문을 쓰지 않고 true혹은 false일때만 실행하고 싶을 때 간단하게 코드를 작성할 수 있는 방법이 없을까 궁금해하던 때에 단축 평가를 알게되어 이를 정리해보려 한다.

단축 평가

논리 연산자를 이용한 단축 평가

논리곱연산자(&&) / 논리합연산자(||) 표현식은 언제나 두개의 피연산자 중 한쪽으로 평가된다.

보통 조건문을 처음 배울 때 논리 연산자를 접하게 되는데 여러 경우의 수를 고려해야 하는 경우에 사용된다

//조건1,2가 모두 True일 때 실행하고 싶을 경우
if(조건1 && 조건2){
  실행할 것
}
//조건1,2중 하나만 True여도 실행하고 싶을 경우
if(조건1 || 조건2){
  실행할 것
}

단축 평가를 이해하기 전에 논리 연산자의 특징에 대한 이해가 필요하다.

논리 연산자의 특징

  • 피연산자의 평가 결과가 Boolean형이 아닐 수 있다.
  • 언제나 두 피연산자 중 한쪽으로 평가된다.
true && false // false
true || false // true
//-----------------------------
one && two // two
one || two // one
//-----------------------------
true && 함수() // 함수() 실행
false || 함수() // 함수() 실행

if 조건문 속에서 논리 연산자가 어떻게 사용되는지 생각해보면 이해가 쉽다.
논리곱연산자(&&)는 모든 조건이 true여야 함수가 실행된다.
따라서 모든 조건이 true인지 판단해야 할 필요가 있으므로 첫 번째 피연산자가 true일 경우 다음 값을 판단해야 하고 첫 번째 피연산자가 false일 경우 두 번째 피연산자를 판단하지 않고(판단할 필요가 없으므로) 즉시 false로 판단한다.
그리고 피연산자의 평가 결과가 Boolean형이 아니라는 특징 때문에 논리곱연산자(&&)는 첫 피연산자가 truthy한 값일 경우 뒤의 피연산자를 평가하고 그 피연산자도 truthy한 값이라면 뒤의 피연산자가 평가 결과가 된다.
즉, 아래처럼 활용이 가능하다.

조건 && 함수();
// 조건이 true일 경우 함수()가 실행
// 조건이 false일 경우 함수()가 실행되지 않음

같은 원리로 논리합연산자(||)도 활용할 수 있다.

조건 || 함수();
//조건이 fasle일 경우 함수()가 실행
//조건이 true일 경우 함수()가 실행되지 않음

0개의 댓글