피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다.
산술 연산이 불가능할 경우 NaN반환
1.이항 산술 연산자
2개의 피연산자를 산술 연산하여 숫자 값을 만든다.
피연자의 값을 변경하는 부수 효과가 없음
• + , - , * , / , %
2.단항 산술 연산자
1개의 피연산자를 산술 연산하여 숫자 값을 만든다.
증가/감소(++/--)연산자는 피연산자의 값을 변경하는 부수 효과가 있음
증가/감소 연산을 하면 피연산자의 값을 변경하는 암묵적인 할당이 이뤄짐
var x = 1;
x++;
console.log(x); // 2
전위 증가/감소 연산자: 먼저 피연산자의 값을 증가/감소시킨 후, 다른 연산을 수행
후위 증가/감소 연산자: 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소시킨다.
+단항 연산자
• 숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환하여 반환
• 피연산자를 변경하는 것은 아니고 숫자 타입으로 변환한 값을 생성해서 반환하기 때문에 부수 효과 가 없음
var x = "1";
console.log(+x); // 1
console.log(x); // '1'
// 불리언 값을 숫자로 타입 변환
var x = true;
console.log(+x); // 1
console.log(x); // true
// 문자열을 숫자로 변환할 수 없을때 NaN 반환
var x = 'hello';
console.log(+x); // NaN
console.log(x); // 'hello'
-단항 연산자
//부호를 반전한다
-(-10); // 10
//문자열을 숫자로 타입 변환한다
-'10'; // -10
//불리언 값을 숫자로 타입 변환한다
-true; // -1
//문자열은 숫자로 타입 변환 할 수 없으므로 NaN을 반환한다.
-'hello'; // NaN