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

·2 min read

예제부터 보자

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)보다 낮은 것을 확인할 수 있다.

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

← Previous
절대 경로 잡아줬는데 vue 파일 대신 vue.js 파일 찾을때(Vue3 + Typescript +Vite)
Next →
JSP에서 UTF-8 인코딩하기(feat. include)