모던 자바스크립트

aydennote·2022년 4월 10일
1

JavaScript

목록 보기
1/7
post-thumbnail

안녕하세요 Ayden 입니다.

"모던 자바스크립트 Deep Dive" 책을 통해서 자바스크립트를 공부하고 있습니다. 헷갈리는 내용, 새로 안 내용에 관련하여 포스팅하겠습니다. 🤓

9.4 단축 평가(p.118)

    // 논리곱
    let finished = true;
    let message = "";
    message = finished && "완료";
    console.log(message); // => '완료'

    // 논리합
    finished = false;
    message = finished || "미완료";
    console.log(message); // => '미완료'

논리연산자는 기본적으로 좌항에서 우항으로 평가된다. 논리곱 연산자(&&)는 두 피연산자 모두 true 일 때 true를 반환한다. 앞에 피연산자인 finished는 true로 평가되었다. 뒤에 "완료" 라는 피연산자를 마저 평가해야 true인지 false인지 판단이 가능하다. 즉, 논리식 결과를 결정하는 피연산자는 뒤에 있는 연산자다. 따라서 논리곱 연산자는 연산 결과를 결정하는 두 번째 피연산자를 그대로 반환한다.

논리합 연산자(||)는 피연산자 중 하나라도 true로 평가되면 true를 반환한다. 위 논리합 예제에서 finished는 false로 평가되었다. 그렇다면 논리곱 연산자처럼 결과를 결정하는 뒤에 있는 피연산자를 평가하고 그대로 반환한다.

    // 논리합
    finished = true;
    message = finished || "미완료";
    console.log(message); // => '미완료'

그렇다면 위의 예제는 결과가 어떻게 될까? finished는 true로 평가되었다. 논리합 연산자에서 앞에 있는 피연산자 평가가 true라면 뒤에 피연산자 평가 결과가 필요 없다. 뒤에 있는 피연산자가 true 여도 결과는 true이며, false여도 결과는 true이다. 뒤에 피연산자는 판단 결과에 영향을 끼치지 못하여 평가하지 않는다. 결국, 앞에 있는 true로 평가된 피연산자를 반환한다. 이것이 단축 평가이다. 위 예제는 논리합 예제로 설명하였으나, 논리곱도 마찬가지다. 논리곱 예제에서 finished가 false면 뒤에 피연산자는 볼 것도 없이 결과는 false 이다. 따라서, false를 반환한다.

profile
기록하는 개발자 Ayden 입니다.

2개의 댓글

comment-user-thumbnail
2022년 4월 11일

저도 자바스크립트 열심히 공부하면서 기본기를 다져놔야겠어요! 헷갈리는 내용, 새로 알게 된 내용 정리하는 거 정말 좋은 방법인 거 같아요!!ㅎㅎ
단축 평가! 잘 봤습니다!!!👍👍

1개의 답글