본문 바로가기

javascript

[js] 연산자

 

연산자 : 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다.

피연산자 : 연산의 대상. 값으로 평가될 수 있는 표현식

 

 

산술 연산자

피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우 NaN을 반환한다.

 

- 이항 산술 연산자

2개의 피연산자를 산술 연산하여 숫자 값을 만든다. 모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과는 없다.

+(덧셈), -(뺄셈), *(곱셈), /(나눗셈), %(나머지)

 

- 단항 산술 연산자

1개의 피연산자를 산술하여 숫자 값을 만든다.

++(증가), --(감소), +, -

증가/감소(++/--) 연산자는 피연산자의 값을 변경하는 부수 효과가 있다. 증가/감소 연산을 하면 피연산자의 값을 변경하는 암묵적 할당이 이뤄진다.

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

· 피연산자 앞에 위치한 전위 증가/감소 연산자는 먼저 피연산자의 값을 증가/감소시킨 후, 다른 연산을 수행한다.

· 피연산자 뒤에 위치한 전위 증가/감소 연산자는 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소시킨다.

 

var x = 5, result;

// 선할당 후증가
result = x++;
console.log(result, x); // 5 6

// 선증가 후할당
result = ++x;
console.log(result, x); // 7 7

// 선할당 후감소
result = x--;
console.log(result, x); // 7 6

// 선감소 후할당
result = --x;
console.log(result, x); // 5 5

 

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

 

+10; // 10
+(-10); // -10

 

- 단항 연산자는 피연산자의 부호를 반전한 값을 반환한다.

 

-(-10); // 10

 

+ 단항 연산자와 - 단항 연산자는 숫자 타입이 아닌 피연산자에 사용하면 피연산자를 숫자 타입으로 변환하여 반환한다. 이때 피연산자를 변경하는 것은 아니고 숫자 타입으로 변환한 값을 생서애서 반환한다. 따라서 부수효과는 없다.

 

// 문자열을 숫자로 타입 변환한다.
+'1'; // 1
-'10'; // -10

// 불리언 값을 숫자로 타입 변환한다.
+true; // 1
+false; // 0
-true; // -1

// 문자열은 숫자로 타입 변환할 수 없으므로 NaN을 반환한다.
+'Hello'; // NaN
-'Hello'; // NaN

 

 

* 문자열 연결 연산자

+ 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다.

개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다 : 암묵적 타입 변환 또는 타입 강제 변환

 

// 문자열 연결  연산자
'1' + 2; // '12'

// 산술 연산자
1 + 2; // 3

// true는 1로 타입 변환된다.
1 + true; // 2

// false는 0으로 타입 변환된다.
1 + false; // 1

// null은 0으로 타입 변환된다.
1 + null; // 1

// undefined는 숫자로 타입 변환되지 않는다.
+undefined; // NaN
1 + undefined; // NaN

'javascript' 카테고리의 다른 글

[js] 동적 타입 언어  (0) 2022.11.26
[js] 데이터 타입(feat. 원시 타입)  (0) 2022.11.18
[js] 표현식과 문  (0) 2022.11.13
[js] 변수  (0) 2022.11.05
[js] 자바스크립트 다시 공부하기..!  (0) 2022.10.29