
#연산자 #산술연산자 #이항산술연산자 #단항연산자 #할당연산자 #비교연산자 #동등연산자 #일치비교연산자
#대소관계비교연산자 #삼항조건연산자 #논리연산자 #쉼표연산자 #그룹연산자 #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의 상태를 바꾼다
연산자우선순위
연산자 우선순위란 여러개의 연산자로 이루어진 문이 실행될때 연산자가 실행되는 순서를 말한다.
- 그룹 연산자
- new , [](프로퍼티 접근), ()(함수호촐), ?.(옵셔널체이닝)
- new(매개변수 없을때)
- 단항 산술연산자 x++, x--
- !x, +x, -x, ++x, --x, typeof, delete
- **
- 이항산술연산자 *,/,%
- 이항산술연산자 +,-
- 비교연산자, in, instanceof
- ==!, !=, ===, !==
- null 병합연산자
- &&
- ||
- 삼항연산자
- 할당연산자
- 쉼표연산자
#연산자 #산술연산자 #이항산술연산자 #단항연산자 #할당연산자 #비교연산자 #동등연산자 #일치비교연산자
#대소관계비교연산자 #삼항조건연산자 #논리연산자 #쉼표연산자 #그룹연산자 #typeof #지수연산자
#delete #new #instanceof #in #연산자부수효과 #연산자우선순위
'프로그래밍 > 자바스크립트 ES6' 카테고리의 다른 글
| 자바스크립트 ES6 #9 타입변환과 단축평가 (0) | 2023.09.12 |
|---|---|
| 자바스크립트 ES6 #8 제어문 (0) | 2023.09.12 |
| 자바스크립트 ES6 #6 데이터 타입 (0) | 2023.04.06 |
| 자바스크립트 ES6 #5 표현식과 문 (0) | 2023.03.29 |
| 자바스크립트 ES6 #4 변수 (0) | 2023.03.29 |