7.1 산술 연산자
7.1.1 이항 산술 연산자
2개의 피연산자를 연산하여 순자 값을 만듭니다.
•
+
•
-
•
*
•
/
•
%
7.1.2 단항 산술 연산자
1개의 피연산자를 산술 연산하여 값을 만듭니다.
•
++
•
—
•
+
•
-
var x, result;
// 선할당 후증가
result = x++; // 5 6
// 선증가 후할당
result = ++x; // 7 7
JavaScript
복사
숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용할 경우 피연산자를 숫자 타입으로 반환한다.
7.1.3 문자열 연결 연산자
연산자 + 는 피연산자중 하나 이상이 문자열일 경우 문자열 연결 연산자로 동작해 문자열을 만들어낸다.
'1' + 2; // '12'
1 + true; // 2
1 + null; // 1
JavaScript
복사
이를 암묵적 타입 변환 or 타입 강제 변환이라고 한다.
7.2 할당 연산자
•
=
•
+=
•
-=
•
*=
•
/=
•
%=
할당문은 표현식인 문으로서 할당된 값으로 평가됩니다.
7.3 비교 연산자
•
==
•
===
•
!=
•
!==
•
>
•
<
•
>=
•
<=
동등 비교(==) 연산자는 암묵적 타입변환을 통해 타입을 일치 시킨 후 비교하고, 일치 비교(===) 연산자는 타입과 값 모두 같아야합니다.
이때 NaN을 주의 해야 하는데 자신과 일치하지 않는 유일한 값입니다. 따라서 비교를 위해 Number.isNaN을 사용해야 합니다.
NaN === NaN; // false
Number.isNaN(NaN); // ture
JavaScript
복사
또한 +0과 -0을 비교시 true를 반환합니다.
+0 === -0; // true
JavaScript
복사
7.4 삼항 조건 연산자
조건식 ? true 반환 할 값 : false 반환값 으로 if…else로 유사하게 처리 가능합니다.
7.5 논리 연산자
•
||
•
&&
•
!
논리 부정(!)는 언제나 boolean을 반환하는데 boolean이 아닐 경우 암묵적 타입변환이 일어납니다.
!0; // true
!'Hello'; // false
JavaScript
복사
7.6 쉼표 연산자
왼쪽 연산자부터 차례대로 피연산자를 평가하고, 마지막 피연산자 평가가 끝날 경우 마지막 피연산자의 결과를 반환합니다.
7.7 그룹 연산자
•
( )
7.8 typeof 연산자
데이터 타입을 문자열로 반환하며, null을 반환하는 경우는 없고, 함수의 경우 function을 반환합니다.
null의 경우 object를 반환합니다.
또한 선언하지 않은 변수의 경우 undefined를 반환합니다.
7.9 지수 연산자
•
**
Math.pow 메서드가 같은 동작을 하며, 밑이 음수일 경우 괄호로 묶어주어야 합니다. 또한 할당 연산자와 함꼐 사용할 수 있습니다.
7.10 그 외의 연산자
•
?
•
??
•
delete
•
new
•
instnaceof
•
in
7.11 연산자의 부수 효과
=, ++, —, delete가 추가적인 효과를 일으킵니다.
7.12 연산자 우선순위
너무 많아 헷갈리기 쉬우므로, 그룹 연산자를 통해 명시적으로 나타내는 것이 좋습니다.