본문 바로가기

JavaScript

[JS] 연산자 - 산술연산자

 산술연산자

: 사칙연산을 다루는 가장 기본적이면서도 많이 사용하는 연산자. 덧셈, 뺄셈, 곱셈, 나눗셈이 있다.

순서대로 +, -, *, /

 

나누고 난 나머지를 계산해주는 연산자인 %도 존재.

(%를 한국어로는 나머지 연산자, 영어로는 remainder operator 또는 modulo operator라고도 한다.)

산술 연산을 할 수 없는 경우에는 NaN을 반환.

 

산술 연산자는 '이항 산술 연산자'와 '단항 산술 연산자'로 구분할 수 있다.

1) 이항 산술 연산자

: 2개의 피연산자를 대상으로 연산하여 숫자 타입의 값을 만든다.

모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과(Side Effect)가 없다. 다시 말해, 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 단지 새로운 값을 만들 뿐이다.

이항 산술 연산자 의미
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

 

2) 단항 산술 연산자

: 1개의 피연산자를 대상으로 연산

증가/감소(++/--)연산자는 피연산자의 값을 변경하는 부수효과(side effect)가 있다. 즉, 피연산자의 값이 변경된다.

단항 산술 연산자 의미
++ 증가
-- 감소
+ 어떠한 효과도 x. 음수를 양수로 반전하지도 x.
- 양수를 음수로, 음수를 양수로 반전

 

증가/감소(++/--) 연산자는 위치에 의미가 있다. 

피연산자 앞에 위치한 전위 증가/감소 연산자(Prefix increment/decrement operator) : 먼저 피연산자의 값을 증가/감소시킨 후, 다른 연산을 수행

피연산자 뒤에 위치한 후위 증가/감소 연산자(Postfix increment/decrement operator) : 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소

let x = 5, result;


//선대입 후증가(Postfix increment operator)
result = x++; //result에 먼저 대입 후, x를 증가시킨다.
console.log(result, x); // 5 6

//선증가 후대입(Prefix increment operator)
result = ++x; //x를 먼저 증가시킨 후, result에 값을 대입
console.log(result, x) //7 7

//선대입 후감소(Postfix decrement operator)
result = x--;
console.log(result, x);// 7 6

//선감소 후대입 (Prefix decrement operator)
result = --x;
console.log(result, x); // 5 5

 

+ 단항연산자

피연산자에 어떠한 효과도 없다. 음수를 양수로 반전하지도 않는다.

숫자 타입이 아닌 피연산자에 사용하면, 피연산자를 숫자 타입으로 변환하여 반환.

+10 //10
+'10' //10
+true //1
+false //0

 

-단항 연산자

피연산자의 부호를 반전한 값을 반환.

숫자 타입이 아닌 피연산자에 사용 시, 피연산자를 숫자 타입으로 변환 후 반환.

-10 // -10
-'10' // -10
-true // -1
-false // -0

 

 

참고 : https://poiemaweb.com/js-operator