본문 바로가기
프로그래밍/자바스크립트 ES6

자바스크립트 ES6 #7 연산자

by 참외롭다 2023. 9. 12.
반응형

#연산자 #산술연산자 #이항산술연산자 #단항연산자 #할당연산자 #비교연산자 #동등연산자 #일치비교연산자

#대소관계비교연산자 #삼항조건연산자 #논리연산자 #쉼표연산자 #그룹연산자 #typeof #지수연산자

#delete #new #instanceof #in #연산자부수효과 #연산자우선순위


연산자

 

연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값으로 만든다.

 

- 연산의 대상을 피연산자라고 한다.

 

- 피연산자는 값으로 표현될 수 있는 표현식이어야한다.

 

- 피연산자와 연산자 조합으로 이루어진 표현식은 값으로 표현될 수 있는 표현식이다.

 

산술 연산자

 

피연산자를 대상으로 수학적 계산을 통해 새로운 숫자 값을 만든다.

 

- 산술연산이 불가능한 경우 NaN(Not a Number)을 반환한다.

 

- 산술연산자는 피연산자의 개수에 따라 이항산술연산자, 단항산술연산자 로 구분된다.

 

이항산술연산자 (+ - * / )

 

- 2개의 피연산자를 산술하여 새로운 숫자값을 만든다.

 

단항산술연산자(++, --)

 

- 1개의 피연산자를 산술하여 숫자값을 만든다.

 

- 새로운 값을 생성하는것이 아닌 기존 피연산자의 값을 변경하여 암묵적으로 할당한다.

 

- 위치에 따라 피연산자의 상태가 바뀐다.


할당 연산자

 

- 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.


- 할당 연산자는 좌항의 변수에 값을 할당하므로 변수의 값이 변하는 부수효과가 있다.

 

- 할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다. 그렇기 때문에 변수에 할당문을 다시 할당할 수도 있다.

 

var a, b, c;
// c = 0 : 0으로 평가된다
// b = 0 : 0으로 평가된다.
// a = 0 : 0으로 평가된다.
a = b = c = 0;

비교연산자

 

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

 

동등 / 일치비교연산자

 

- 동등비교연산자는 암묵적으로 좌항과 우항의 타입을 일치시킨 후 같은 값인지 비교한다.

 

- 일치비교연산자는 좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true를 반환한다.

 

- 동등비교연산자(==)는  좌항과 우항의 값이 같은지 비교한다.

 

- 일치비교연산자(===)는 좌항과 우항의 값이 같고 타입이 같은지 비교

 


대소관계비교연산자

 

좌항과 우항의 피연산자의 크기를 비교해 결과를 불리연 값으로 반환한다.

 

- > : 좌항이 크다.

 

- < : 우항이 크다.

 

- <= : 우항이 크거나 두항이 같다.

 

- >= : 좌항이 크가나 두항이 같다.


삼항조건연산자

 

조건식의 평가 결과에 따라 반환한 값을 결정한다.

 

- 삼항조건연산자 표현식은 값으로 평가할 수 있는 표현식인 문이다. 따라서 변수에 할당할 수 있다.

var x = 10;
// 삼항 조건 연산자의 평가결과를 변수에 할 당할 수 있다.
var result = x % 2 ? "홀수" : "짝수";

논리연산자

 

우항과 좌항의 피연산자를 논리 연산한다.

 

- || : 논리합(OR)

 

- && : 논리곱(and)

 

- ! : 부정(NOT)


쉼표연산자

 

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

var x, y, z;
(x = 3), (y = 2), (z = 1); // 3

그룹연산자 ()

 

소괄호로 피연산자를 감싸는 그룹 연산자는 자신의 피연산자인 표현식을 가장 먼저 평가한다.

 

- 그룹 연산자는 연산자들 중 우선순위가 가장 높다

 


typeof

 

피연산자의 데이터 타입을 문자열로 반환한다.

 

- 함수의 경우 'function'을 반환

 

- 피연산자로 NULL을 지정할 경우 NULL이 아닌 OBJECT 를 반환한다.

 

- NULL 체크는 ===(일치 연산자) 를 사용하는것이 권장된다.

 

- 선언하지않은 변수를 피연산자로 대입하면 error 대신 undefined를 반환한다.


지수연산자 (**)

 

좌항을 밑으로 우항을 지수로 거듭제곱한다.


그 외의 연산자

 

- ? : 옵셔널 체이닝 연산자

 

- ?? : NULL 병합 연산자

 

- delete : 프로퍼티 삭제

 

- new : 생성자 함수를 호출할때 사용하여 인스턴스 생성

 

- instanceof : 좌변의 객체가 우변 생성자함수와 연결된 인스턴스인지 판별

 

- in : 프로퍼티 존재 확인


연산자의부수효과

 

부수효과가 있는 연산자에는 할당연산자(=)  단항산술연산자  delete연산자가 있다.

 

- 할당연산자/ 단항산술연산자는 피연산자의 값을 바꾼다.

- delete연산자는 프로퍼티 삭제를 통해 OBJECT의 상태를 바꾼다

 


연산자우선순위

 

연산자 우선순위란 여러개의 연산자로 이루어진 문이 실행될때 연산자가 실행되는 순서를 말한다.

  1. 그룹 연산자
  2. new , [](프로퍼티 접근), ()(함수호촐), ?.(옵셔널체이닝)
  3. new(매개변수 없을때)
  4. 단항 산술연산자 x++, x--
  5. !x, +x, -x, ++x, --x, typeof, delete
  6. **
  7. 이항산술연산자 *,/,%
  8. 이항산술연산자 +,-
  9. 비교연산자, in, instanceof
  10. ==!, !=, ===, !==
  11. null 병합연산자
  12. &&
  13. ||
  14. 삼항연산자
  15. 할당연산자
  16. 쉼표연산자

#연산자 #산술연산자 #이항산술연산자 #단항연산자 #할당연산자 #비교연산자 #동등연산자 #일치비교연산자

#대소관계비교연산자 #삼항조건연산자 #논리연산자 #쉼표연산자 #그룹연산자 #typeof #지수연산자

#delete #new #instanceof #in #연산자부수효과 #연산자우선순위

반응형