2개의 피연산자를 산술 연산하여 숫자 값을 만들고, 피연산자의 값을 변경하는 부수효과가 없다.
5+2; // -> 7
5-2; // -> 3
5*2; // -> 10
5/2; // -> 2.5
5%2; // -> 1
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
+연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. 이를 암묵적 타입 변환, 타입 강제 변환이라고 한다.
'1' + 2; // -> '12'
동등 비교 연산자는 좌항과 우항의 피연산자를 비교할 때 암묵적 타입변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다. 반면, 일치 비교 연산자는 타입도 같고 값이 같은 경우에만 true를 반환한다.
* NaN은 자신과 일치하지 않는 유일한 값이다.
피연산자의 크기를 비교하여 불리언 값을 반환한다.
|| : 논리합 (or)
&& : 논리곱 (and)
! : 부정 (not)
&& : 단축평가
9.4 단축평가 참고
var x, y, z;
x = 1, y = 2, z = 3; // 3
10 * 2 + 3; // -> 23
10 * (2 + 3); // -> 50
부수효과가 있는 연산자는 할당 연산자(=), 증가/감소 연산자(++/--), delete연산자다.
10.8절 프로퍼티 삭제 참고