오늘은 저번에 했던 계산기 목업 만들기의 연장선으로, 실제 계산기의 기능을 구현하는 시간을 가졌다.
논리합(||) 또는 논리곱(&&) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.
console.log('Cat' && 'Dog')
//output : Dog
논리곱(&&) 연산자는 두 개의 피연산자가 모두 true
로 평가될 때 true
를 반환하며, 좌항에서 우항으로 평가가 진행된다.
그렇기 때문에 두 번째 피연산자까지 평가해보아야 표현식을 평가할 수 있다. 즉, 두 번째 피연산자가 논리곱 연산자 표현식의 평가 결과를 결정하며, 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자 Dog
를 그대로 반환한다.
console.log('Cat' || 'Dog')
//output : Cat
첫 번째 피연산자 Cat
가 true로 평가되고 이 시점에 두 번째 피연산자까지 평가하지 않아도 위 표현식을 평가할 수 있다.
그렇기 때문에 논리합 연산자는 논리 연산의 결과를 결정한 첫 번째 피연산자, 문자열 Cat
을 그대로 반환한다.
+는 문자열 계산이 가능하지만 그 이외에 연산자는 계산이 불가능하기 때문에 자동으로 number type으로 인식해서 계산을 해준다. 그래서 "2" + "2" - "2" 같은 경우에 "20"이라는 결과 같이 나오게 된다.
단축 평가 : 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말합니다.
console.log(true || anything) // true console.log(false || anything) // anything console.log(true && anything) // anything console.log(false && anything) // false