[JS] 논리연산자는 삼항연산자보다 먼저 실행된다.

설탕유령·2023년 2월 3일
0

예제부터 보자


console.log(true ? true : false && false);
// 결과: true

처음 로직을 짤때 내 생각은 이랬다.
'삼항연산자로 앞에서 조건을 필터링하고 그 결과를 논리(&&) 연산자로 다시 검증해야지'

위 로직이 내가 생각한대로 삼항연산자를 먼저 실행시키려면 괄호()를 이용해야한다.

true ? true : false && false // true
(true ? true : false) && false // false

괄호를 치지 않는다면 다음과 같은 순서로 실행이 된다.

true ? true : (false && false)
// false && false => false
// 다음과 같이 변환됨 => 
true ? true : false // true

mdn docs를 확인해보자
연산자 우선순위

왼쪽에 번호는 실행 우선순위로 조건(삼항) 연산자의 우선순위는 3으로 논리 AND 연산자(5)보다 낮은 것을 확인할 수 있다.

연산자와 조건을 섞어 사용할때는 괄호()를 활용하거나 우선순위를 잘 고려하도록 하자

profile
달콤살벌

0개의 댓글