2024. 7. 13. 10:55ㆍWebFront/JS, JQuery
산술 연산자
피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 불가능할 경우 NaN을 반환한다. 피연산자의 개수에 따라 '이항 산술 연산자'와 '단항 산술 연산자'로 구분할 수 있다.
이항 산술 연산자는 2개의 피 연산자를 산술 연산하여 숫자 값을 만든다. 다만, 피연산자의 값이 바뀌는 경우는 없고 언제나 새로운 값을 만들 뿐이다.
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
단항 산술 연산자는 1개의 피연산자를 산술 연산하여 숫자 값을 만든다. ++(증가), --(감소), +(양수, 효과없음), -(양수를 음수로, 음수를 양수로 반전)가 여기에 해당한다.
++ | 증가 | 부수효과 O |
-- | 감소 | 부수효과 O |
+ | 어떠한 효과도 없다 | 부수효과 X |
- | 양수를 음수로, 음수를 양수로 반전한 값을 반환한다. | 부수효과 X |
++와 --는 피연산자의 값을 변경하여 할당한다.
var x = 1;
x++;
console.log(x); //2
x--;
console.log(x); //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
+단항 연산자는 어떠한 효과도 없다. 다만, 숫자 타입으로 변환하여 반환하는 효과는 있다.
var x = '1';
console.log(+x); //1
x = true;
console.log(+x); //1
x = 'Hello';
console.log(+x); //NaN
-단항 연산자는 피연산자의 부호를 반전한 값을 반환한다. +단항 연산자와 마찬가지로 숫자 타입으로 변환하여 반환한다. 부수효과는 없다.
-(-10); //10
-'10'; //-10
-true // -1
-Hello // NaN
+ 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. 그 외에는 산술로 작동한다. 참고로, true는 1, false는 0, null은 0으로 변환한다. underfined는 숫자로 변환하지 않는다.
'1' + 2; //12
1 + true; //2
1 + false; //1
1 + null; //1
1 + underfined; //NaN
이렇게 타입이 암묵적으로 바뀌는 것을 '암묵적 타입 변환' 또는 '타입 강제 변환'이라고 한다.
할당 연산자
할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다. 부수 효과가 있다.
= | 부수효과 O |
+= | 부수효과 O |
-= | 부수효과 O |
*= | 부수효과 O |
/= | 부수효과 O |
%= | 부수효과 O |
비교연산자
비교연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환한다. 아래는 비교 연산자 중에서 '동등/일치 비교 연산자'이다.
== | 동등 비교 |
=== | 일치 비교 |
!= | 부동등 비교 |
!== | 불일치 비교 |
비교 연산자는 비교를 위해 암묵적 타입 변환을 통해 타입을 일치시킨 후 값을 비교한다.
5 == '5'; //true
하지만 동등 비교 연산자는 결과를 예측하기 어렵고 실수를 하기 쉬워 일치 비교 연산자(===)를 사용하는 것이 좋다. 일치 비교 연산자는 타입과 값을 모두 비교한다.
참고로 NaN은 비교 연산자에서 자신과 일치 하지 않는 유일한 값이다. 그래서 만약 숫자가 NaN인지 확인하려면 Number.isNaN을 사용해야한다.
삼항 조건 연산자
삼항 조건 연산자의 표현식은 다음과 같다.
//조건식 ? 조건식이 true일 때 반환할 값 : 조건식이 false일 때 반환할 값
var result = score >=60 ? 'pass' : 'fail';
만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 암묵적 타입 변환된다. 그래서 아래와 같은 것도 가능하다. *(true는 1이고, false는 0이다)
var x = 2;
var result = x % 2 ? '홀수' : '짝수';
console.log(result); //짝수
논리 연산자
우항과 좌항의 피연산자를 논리 연산한다.
|| | OR |
&& | AND |
! | NOT |
typeof 연산자
typeof는 string, number, boolean, undefined, symbol, object, function 중 하나를 반환한다. 함수의 경우에는 fuction을 반환한다. 참고로 null을 반환하지는 않는다. 만약, null을 typeof로 연산하면 object를 반환한다. null인지 확인하려면 일치 연산자(===)를 사용하였야 한다.
지수 연산자
ES7 이후로 좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 반환하는 것이 가능하다. 이전에는 Math.pow를 사용했지만 이전에 비해 가독성이 높아졌다. 음수를 사용할 경우에는 괄호로 묶어야 한다.
2 ** 2; //4
2 ** 0; //1
'WebFront > JS, JQuery' 카테고리의 다른 글
[07.11] 데이터 타입 (0) | 2024.07.12 |
---|