AND 와 OR 연산자의 연산 우선순위
function checkAnswer(value) {
if (value < 10 && value > 0 && value !== 3) {
return '정답입니다!';
}
return '틀렸습니다!';
}
console.log(checkAnswer(4)); // 정답입니다!
파라미터 value로 전달되는 값이 10보다 작으면서 0보다는 크고, 그러면서도 3은 아닐 때 '정답입니다!' 라는 문자열을 콘솔에 출력하는 함수를 정의했다.
코드를 작성하다 보면 다양한 상황을 고려하기 위해서 이렇게 AND나 OR 연산자를 여러 번 사용해야 할 수도 있다.
그런데 한 가지 조심해야 할 부분이 있다.
위에 있는 코드처럼 AND 연산자나 OR 연산자 중 하나만 계속해서 사용할 때는 문제 없지만,
만약 AND 연산자와 OR 연산자를 섞어서 사용할 때는 연산의 우선순위가 존재한다.
AND 와 OR 연산자 사이에서는 AND 연산자의 우선순위가 더 높다.
console.log(true || false && false); // true
console.log((true || false) && false); // false
console.log('Codeit' || NaN && false); // Codeit
console.log(('Codeit' || NaN) && false); // false
위 코드처럼 OR 연산자 뒤에 AND 연산자를 사용한다면, 소괄호로 OR 연산을 감쌀 때와 감싸지 않았을 때 서로 다른 결과를 보여주는 걸 확인할 수 있다.
프로그래밍을 하다 보면 AND와 OR 연산자뿐만 아니라 다양한 연산자들을 복합적으로 사용하게 될 텐데,
연산의 우선순위를 명확하게 하지 않으면 예상치 못한 결과를 얻을 수 있으니 잘 구분해두는 것이 중요하다.
대부분은 코드를 작성하고 테스트도 해보면서 자연스럽게 이해되기 때문에 하나하나 시험공부 하듯 외울 필요는 없지만 간혹 우리가 의도하지 않은 연산 결과가 나타날 땐,
이 연산자 우선순위를 의심해 보시고 아래 링크의 도움을 받는 것도 좋을 것 같다.
연산자 우선순위 - JavaScript | MDN
연산자 우선순위는 연산자를 실행하는 순서를 결정합니다. 우선순위가 높은 연산자가 먼저 실행됩니다.
developer.mozilla.org
// 참고
console.log(true || (false && false)); // true
console.log((true || false) && false); // false
console.log('Codeit' || (NaN && false)); // Codeit
console.log(('Codeit' || NaN) && false); // false
'프론트엔드 > Javascript' 카테고리의 다른 글
즉시 실행 함수(IIFE) (0) | 2022.01.27 |
---|---|
null 병합 연산자 ?? (0) | 2022.01.26 |
typeof 연산자 (0) | 2022.01.25 |
Symbol&BingInt (0) | 2022.01.25 |
JavaScript vs ECMAScript (0) | 2022.01.25 |