7.1 산술 연산자

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

산술 연산이 불가능할 경우 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