: 2개의 피연산자를 산술 연산하여 숫자 값을 만들며, 피연산자의 값을 변경하는 부수 효과는 없다. 다시 말해, 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고, 언제나 새로운 값을 만들 뿐이다.
: 1개의 피연산자를 산술 연산하여 숫자 값을 만들며, 이항 산술 연산자와는 달리 증가, 감소 연산자는 피연산자의 값을 변경하는 부수 효과(암묵적 할당)가 있다.
증가( ++ )
감소( -- )
var x = 1;
x ++; // x = x + 1;
console.log(x); // 2
x --; // x = x - 1;
console.log(x); // 1
- 피연산자 앞에 위치한 전위 증가/감소 연산자는 먼저 피연산자의 값을 증가/감소 시킨 후, 다른 연산을 수행함
- 피연산자 뒤에 위치한 후위 증가/감소 연산자는 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소시킴
효과 없음( + )
: 숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환하여 반환하며, 반환이 안되는 값일 경우 NaN을 반환함.
- 하나 이상이 문자열일 경우, 문자열 연결 연산자로 동작함 ( '1' + 2; // -> '12' )
- null은 0으로 타입 변환함 ( 1+null; // ->1 )
- undefined는 숫자로 타입 변환되지 않음 ( 1 + undefined; // -> NaN )
우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당하며, 필요한 경우 여러 변수에 동일한 값을 연쇄 할당할 수 있음
좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환하며, 주로 if문이나 for문과 같은 제어문의 조건식에서 사용됨
: 동등 비교 연산자(느슨한 비교 -> 값만 비교 / == 와 != 가 있음)
: 일치 비교 연산자(엄격한 비교 -> 값과 타입을 비교 / === 와 !==가 있음)
: 피연산자의 크기를 비교하여 불리언 값으로 반환함
조건식의 평가 결과에 따라 반환할 값을 결정하며, 물음표(?) 앞의 첫 번째 피연산자가 true로 평가되면 두 번째 피연산자를 반환하고, false도 평가되면 세 번째 피연산자를 반환함
var x = 10;
var result = x % 2 ? '홀수' : '짝수' ;
console.log(result); // 짝수
우항과 좌항의 피연산자(부정 논리 연산자의 경우, 우항의 피연산자)
- 드 모르간의 법칙
! ( x || y ) === ( ! x && ! y )
! ( x && y ) === ( ! x || ! y )
쉼표( , ) 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과를 반환함
var x, y, z;
x = 1, y = 2, z = 3; // 3
소괄호('()')로 피연산자를 감싸는 그룹 연산자는 자신의 피연산자인 표현식을 가장 먼저 평가하고, 이를 통해 연산자의 우선순위를 조절할 수 있음
피연산자의 데이터 타입을 7가지의 문자열(number, string, boolean, undefined, symbol, object, function) 중 하나로 반환함
var foo = null;
typeof foo === null // -> false
foo === null; // ->true
좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환하며, 이항 연산자 중에서 운선순위가 가장 높음 / 음수를 거듭제곱의 밑으로 사용해 계산하려면 다음과 같이 괄호로 묶어야 함
(-5) ** 2 ; // -> 25