연산자 : 하나 이상의 값으로 평가된 피연산자(표현식)을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만드는 것
피연산자 : 연산의 대상, 값으로 평가될 수 있는 표현식이어야 한다.
수학적 계산을 수행해 새로운 숫자 값을 만듦.
산술 연산이 불가능한 경우 NaN을 반환
+
-
*
/
%
++
--
, 부수효과(피연산자의 값을 변경)가 있다. (선할당/후할당)+
: 숫자타입 피연산자에 어떠한 효과도 없다. 숫자타입이 아닌 피연산자를 숫자 타입으로 변환한다. ('1'
, true
, false
)-
: 숫자타입 피연산자의 부호를 반전한 값을 반환한다. 숫자타입이 아닌 피연산자를 숫자 타입으로 변환한다. ('1'
, true
)+
연산자는 피연산자 중 하나 이상이 '문자열'인 경우 문자열 연결 연산자로 동작한다.
// 문자열 연결 연산자
'1' + 2 // -> 12
1 + '2' // -> 12
//그 외
1 + true // -> 2
1 + false // -> 1
할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.
=
+=
-=
*=
/=
%=
비교 연산자는 좌항과 우항의 피연산자를 비교한 다음의 결과를 불리언(boolean) 값으로 반환하는 연산자이다.
==
(동등) ===
(일치) !=
(부동등) !==
(불일치)
NaN === NaN // -> false
NaN은 자신과 일치하지 않는 유일한 값이다.
그래서 숫자가 NaN인지 조사하려면Number.isNaN
을 사용한다.
0 === -0 // -> true
0 == -0 // -> true
양의 0과 음의 0의 동등/일치 비교 결과는
모두 true가 나온다.
>
<
>=
<=
'<조건식> ? 'true일 때 반환할 값' : 'false일 때 반환할 값'
is...else
문과 달리 값으로 평가할 수 있는 표현식인 문이다.||
(OR) &&
(AND) !
(NOT),
var x, y, z;
x = 1, y = 2, z = 3; // --> 3
( )
10 * 2 + 3; // -> 23
10 * (2 + 3); // --> 50
typeof <피연산자>
null
은 반환하지 않으며 null 값은 object로 반환된다.**
5 ** 2 // --> 25
(-5) ** 2 // --> -25
출처 : 이웅모, 『모던 자바스크립트 deep dive』, 위키북스(2020), p74-92.