본문 바로가기
JavaScript

[PoiemaWeb] 단축 평가

by pds6370 2023. 3. 8.

'Cat' && 'Dog' // "Dog"

 

논리곱 연산자 &&는 두개의 피연산자가 모두 true로 평가될 때 ture를 반환한다. 대부분의 연산자가 그렇듯이 논리곱 연산자도 오른쪽에서 왼쪽으로 평가가 진행된다.

  1. 첫번째 피연산자 'Cat'은 true로 평가된다. 하지만 이 시점까지는 위 표현식을 평가할 수 없다. 두번째 피연산자까지 평가해 보아야 위 표현식을 평가할 수 있다.
  2. 두번째 피연산자 'Dog'는 true로 평가된다. 이때 두개의 피연산자가 모두 true로 평가되었다. 이때 논리곱 연산의 결과를 결정한 것은 두번째 피연산자 'Dog'다
  3. 논리곱 연산자 &&는 논리 연산의 결과를 결정한 두번째 피연산의 평가 결과 즉, 문자열'Dog'를 그대로 반환한다.

 

'Cat || 'Dog' // "Cat"

논리합 연산 ||는 두개의 피연산자 중 하나만 true로 평가되어도 true를 반환한다. 대부분의 연산자가 그렇듯이 논리합 연산자도 오른쪽에서 왼쪽으로 평가가 진행된다.

  1. 첫번째 피연산자 'Cat'은 true로 평가된다. 이 시점에서 두번째 피연산자까지 평가해 보지 않아도 위 표현식을 평가할 수 있다.
  2. 논리합 연산자 ||는 논리 연산의 결과를 결정한 첫번째 피연산자의 평가 결과 즉, 문자열 'Cat'를 그대로 반환한다.

논리곱 연산자 &&와 논리합 연산자 ||는 이와 같이 논리 평가를 결정한 피연산자의 평가 결과를 그대로 반환한다.

이를 단축 평가(Short-Circuit evaluation)라 부른다. 단축 평가는 아래의 규칙을 따른다.

단축 평가 표현식 평가 결과
true || anything true
false || anything anything
true && anything anything
false && anything false

'JavaScript' 카테고리의 다른 글

[PoiemaWeb] 변경불가성  (0) 2023.03.09
[PoiemaWeb] 객체  (0) 2023.03.09
[PoiemaWeb] break, continue  (0) 2023.03.08
[PoiemaWeb] 연산자  (0) 2023.03.08
[PoiemaWeb] 변수  (0) 2023.03.08