# 단축 평가 값 (Short-circuit Evaluation)
논리 연산자들은 왼쪽->오른쪽 순으로 실행됨. 이 연산자들은 결과를 얻게 되는 순간 단축 평가(즉, 평가의 중단)를 시행. false && 표현식 -> 이미 false발견 true || 표현식 -> 이미 true 그러나 그 결과값은 (반드시 true 또는 false가 아니라) 평가를 중단하게 된 계기가 된 값을 리턴한다.
# 예제
# ex.1
var me = "바보";
var you = (me || "천재"); //"바보"
내용을 가진 문자열은 true니까 you에 me값이 대입된다.
# ex.2
var me = "";
var you = (me || "천재"); //"천재"
# ex.3
var me = "";
var you = (me || {}); //"천재"
me가 값을 가지고 있지 않은 경우엔 빈 객체 생성
# ex.4
vA = 0;
vB = 1;
vC = 2;
if(vA||vB||vC){
//do something
}
- 세 값 중 어느 하나라도 true로 취급될 수 있으면 if내의 코드가 실행.
- 경험 많은 개발자들은 그래서 비용이 높은 코드는 가능한 한 나중에 평가되도록 작성한다.
- OR연산자를 사용할 땐 true를 리턴할 가능성이 높은 코드를 첫 번째 조건으로 작성하고,
- AND연산자에선 false를 첫번째로.
# 참고
인터랙티브 프론트엔드 웹 개발 교과서 자바스크립트&제이쿼리 (제이펍) p.169