07장 연산자

Yuri Lee·2021년 3월 14일
0

7.1 산술 연산자

  • 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우, NaN 을 반환한다.
  • 산술 연산자는 피연산자의 개수에 따라 이항, 단항으로 구분할 수 있다.

7.1.1 이항 산술 연산자

  • 이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만든다.
  • 피연산자의 값을 변경하는 부수 효과가 없다. 언제나 새로운 값을 만듦
  • (+, -, *, / , % )

7.1.2 단한 산술 연산자

  • 단항 산술 연산자는 1개의 피연산자를 산순 연산하여 숫자 값을 만든다.
  • (++, --, +, -)
  • 증가/감소(++/--) 연산자는 피연산자의 값을 변경하는 부수 효과가 있다.
  • 증가/감소(++/--) 연산자는 위치에 의미가 있다.
    • 전위 : 먼저 피 연산자의 값을 증가/감소 시킨 후, 다른 연산 수행
    • 후위 : 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소 시킴

7.1.3 문자열 연결 연산자

  • (+) 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작
  • 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다. 이를 암묵적 타입 변환 또는 타입 강제 변환이라고도 한다.

7.2 할당 연산자

  • 할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.
  • 부수효과 O
  • (=, +=, -=, *=, /=, %=)

7.3 비교 연산자

  • 비교 연산자는 좌항과 우항의 피연산자를 비교하고 그 결과를 불리언 값으로 반환한다.

7.3.1 동등/일치 비교 연산자

  • 동등 비교 연산자 : 값 비교
    • 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
  • 일치 비교 연산자 : 값과 타입 비교

7.3.2 대소 관계 비교 연산자

  • 대소 관계 비교 연산자는 피연산자의 크기를 비교하여 불리언 값을 반환한다.

7.4 삼항 조건 연산자

  • 삼항 조건 연산자는 조건식의 평가 결과에 따라 반환할 값을 결정한다.
  • 값으로 평가할 수 있는 표현식인 문이다.

7.5 논리 연산자

  • 우항과 좌항의 피연산자를 논리 연산이라고 한다.

7.6 쉼표 연산자

  • 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 결과를 반환한다.

7.7 그룹 연산자

  • 소괄호를 통해 연산자의 우선순위를 조절할 수 있다.

7.8 typeof 연산자

  • 피연산자의 데이터 타입을 문자열로 반환한다.
  • typeof 연산자 의 주의할 점!
    • typeof 연산자로 null 값을 연산해보면 null이 아닌 object 를 반환한다. (자바스립트의 첫 번째 버전의 버그임)
    • 선언하지 않은 식별자를 typeof 연산자로 연산해보면 referenceError가 발생하지 않고 undefined를 반환한다.

7.9 지수 연산자

  • ES7에서 도입된 지수 연산자는 좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환한다.

7.10 그 외의 연산자

  • ?. : 옵셔널 체이닝
  • ?? : null 병합 연산자
  • delete : 프로퍼티 삭제
  • new : 생성자 함수를 호출할 때 사용하여 인스턴스를 생성
  • instanceof : 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
  • in : 프로퍼티 존재 확인

7.11 연산자의 부수 효과

  • 대부분의 연산자는 다른 코드에 영향을 주지 않는다. 하지만 일부 연산자는 다른 코드에 영향을 준다.
  • 할당 연산자(=), 증가/감소 연산자(++/--), delete 가 부수효과가 있는 연산자이다.

7.12 연산자 우선순위

  • 연산자 우선순위란 여러 개의 연산자로 이루어진 문이 실행될 때 연산자가 실행되는 순서를 말한다.
  • 종류가 많아 기억하기 힘드니 연산자 우선순위가 가장 높은 그룹 연산자를 사용하여 우선순위를 명시적으로 조절하자.

7.13 연산자 결합 순서

  • 연산자의 어느 쪽부터 평가를 수행할 것인지를 나타낸다.
  • 좌항 -> 우항
  • 우항 -> 좌항

🌳 느낀점

  • 연산자의 종류가 참 많구나..^^..

위 글은 위키북스의 모던 자바스크립트 Deep Dive 를 읽고 정리한 내용입니다.

profile
Step by step goes a long way ✨

0개의 댓글