초보 주니어 개발자의 입장에서 본인의 이해를 위해 쓴 글이므로 설명이 부정확하거나 모호할 수 있습니다.
글에 잘못된 부분이 있다면 댓글로 남겨주세요.
개발을 하다보면 조건문을 쓸 일이 정말 많다.
하지만 매번 if( 조건 ) { 실행할 것 }
의 형식으로 조건문을 작성하는것은 한두줄일땐 괜찮지만 코드가 길어질수록 복잡해보이고 저 코드를 줄이고싶다는 마음이 커진다.
그래서 간단하게 쓸 수 있는 삼항연산자( 조건 ? true일때 실행할 것 : false일때 실행할 것
)를 자주 쓰게 되는데 true
일때만 혹은 false
일때만 실행하고 싶을때에는 둘 중 한자리에 null을 넣어줘야 한다.
if 조건문을 쓰지 않고 true혹은 false일때만 실행하고 싶을 때 간단하게 코드를 작성할 수 있는 방법이 없을까 궁금해하던 때에 단축 평가를 알게되어 이를 정리해보려 한다.
논리곱연산자(
&&
) / 논리합연산자(||
) 표현식은 언제나 두개의 피연산자 중 한쪽으로 평가된다.
보통 조건문을 처음 배울 때 논리 연산자를 접하게 되는데 여러 경우의 수를 고려해야 하는 경우에 사용된다
//조건1,2가 모두 True일 때 실행하고 싶을 경우
if(조건1 && 조건2){
실행할 것
}
//조건1,2중 하나만 True여도 실행하고 싶을 경우
if(조건1 || 조건2){
실행할 것
}
단축 평가를 이해하기 전에 논리 연산자의 특징에 대한 이해가 필요하다.
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일 경우 함수()가 실행되지 않음