LHJ

I'm a FE developer.

3-12. 연산자(Operator) / 조건 연산자, 연산자 우선순위

19 Nov 2020 » js_beginner

28. 조건 연산자, 연산자 우선순위

조건 연산자

  • 기호 : exp ? exp-1 : exp-2

    • 3항 연산자라고도 함

  • exp 위치의 표현식을 먼저 평가

    • true 이면 exp-1 의 결과 반환
    • false 이면 exp-2 의 결과 반환

        console.log(1 === 1 ? "같음" : "다름"); // 같음
        console.log(1 === "1" ? "같음" : "다름"); // 다름
      
      1. 1과 1은 값과 타입이 같으므로 true
        ? 다음의 표현식을 진행
      2. 1과 “1”은 값은 같지만 타입이 다르므로 false, : 다음의 표현식을 실행

위와 같은 3항 연산자는 꽤 많이 사용합니다.
왜냐하면 3항 연산자 문을 if 문으로 바꿀 수 있는데, if 문을 사용하게되면 3~4줄로 길어집니다.
그것보다는 위와 같이 3항 연산자로 작성하는 것이 가독성이 좋죠?
그래서 간단한 것은 위와 같이 작성하는 것이 더 좋습니다.

연산자 우선순위

  • 연산자의 실행 우선순위

    • ECMA-262 스펙에 없음
  • 우선순위가 가장 높은 것은 ()
  • MDN Operator precedence

우선순위 21이 가장 높습니다.
높은 순서대로 먼저 실행이 됩니다.

꼭 연산자 우선순위에 대해 읽어보도록 합시다.
그리고 MDN 정말 좋습니다~!

연산자 우선순위는 ES5에서도 많이 다룰거지만 ES6에서도 꼭 다룰 겁니다.
그 이유는 연산자 우선순위에 등록되어있는 연산자만 보시더라도 ES5에 없는 연산자들이 있습니다.
yield, yield* 같은 연산자입니다.
그렇기 때문에 ES6에서도 연산자 우선순위를 다룹니다.