- 피연산자를 연산하여 새로운 값을 만든다
산술 연산자
- 이항 산술 연산자
2개의 피연산자를 산술 연산하여 숫자 값을 만든다
이항 산술 연산자 | 의미 | 부수효과 |
+ | 덧셈 | X |
- | 뺄셈 | X |
* | 곱셈 | X |
/ | 나눗셈 | X |
% | 나머지 | X |
- 단항 산술 연산자
- 증가 감소 연산자 : 피연산자의 값을 변경하는 부수효과
- 전위 증가/감소 연산자: 먼저 피연산자의 값을 증가/감소 시킨 후, 다른 연산 수행
- 후위 증가/감소 연산자: 먼저 다른 연산을 수행한 후, 피연산자의 값 증가/감소시킴
1개의 피연산자를 산술 연산하여 숫자 값을 만든다
단항 산술 연산자 | 의미 | 부수효과 |
++ | 증가 | O |
— | 감소 | O |
+ | 어떠한 효과도 없다. 음수를 양수로 반전하지도 않는다. | X |
- | 양수 → 음수
음수 → 양수 | X |
숫자 타입이 아닌 피연산자에 + 단항연산자를 사용하면 피연산자를 숫자타입으로 변환하여 반환
문자열 연결 연산자
- + 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작
'1' + 2 //'12'
⇒ 암묵적 타입 변환, 타입 강제 변환
할당 연산자
- 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당
할당 연산자 | 예 | 동일 표현 | 부수 효과 |
= | x = 5 | x = 5 | O |
+= | x += 5 | x = x + 5 | O |
-= | x -= 5 | x = x - 5 | O |
*= | x *= 5 | x = x * 5 | O |
/= | x /= 5 | x = x / 5 | O |
%= | x %= 5 | x = x % 5 | O |
할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가됨
var a, b, c; a = b = c = 0; consoloe.log(a, b, c); //0 0 0
비교 연산자
- 동등/일치 비교 연산자
좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해 불리언 값 반환
비교 연산자 | 의미 | 사례 | 설명 | 부수 효과 |
== | 동등 비교 | x == y | x와 y의 값이 같음 | X |
=== | 일치 비교 | x === y | x와 y의 값과 타입이 같음 | X |
! = | 부동등 비교 | x ! = y | x와 y의 값이 다름 | X |
! == | 불일치 비교 | x ! == y | x와 y의 값과 타입이 다름 | X |
NaN은 자신과 일치하지 않는 유일한 값
Number.isNaN()을 사용
Object.is()
-0 === +0; //true Object.is(-0, +0) //false NaN === NaN; //false Object.is(NaN, NaN) //true
대소 관계 비교 연산자
- 피연산자의 크기를 비교하여 불리언 값 반환
대소 관계 비교 연산자 | 예제 | 설명 | 부수 효과 |
> | x > y | x가 y보다 크다 | X |
< | x < y | x가 y보다 작다 | X |
> = | x > = y | x가 y보다 크거나 같다 | X |
< = | x < = y | x가 y보다 작거나 같다 | X |
삼항 조건 연산자
- 조건식의 평가 결과에 따라 반환할 값을 결정
- 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 암묵적 변환
- 값으로 평가할 수 있는 표현식인 문
조건식 ? 조건식이 true 일 때 반환값 : 조건식이 false일 때 반환값
var result = x % 2 ? '홀수' : '짝수';
논리 연산자
- 우항과 좌항의 피연산자를 논리 연산
- 논리 부정: 언제나 불리언 반환, 피연산자가 불리언 값이 아닐경우 불리언 타입으로 암묵적 변환
논리 연산자 | 의미 | 부수 효과 |
|| | 논리합 OR | X |
&& | 논리곱 AND | X |
! | 부정 NOT | X |
쉼표 연산자
- 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가결과 반환
var x, y, z; x = 1, y = 2, z = 3; //3
그룹 연산자
- 소괄호로 피연산자를 감삼
- 자신의 피연산자인 표현식을 가장 먼저 평가 → 연산자의 우선순위 조절
typeof 연산자
- 데이터 타입을 문자열로 반환
typeof 1; // "number" typeof null; //"object" typeof function() {}; //"function"
null 타입 확인시엔 일치 연산자(===) 사용
지수 연산자
- 좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭제곱하여 숫자 값 반환
2 ** 2; //4 (-5) ** 2; //25