연산자란 ? 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 연산 대상은 피연산자라 한다.
'1' + 2; // -> '12'
1 + '2'; // -> '12'
1 + true; // -> 2
1 + false; // -> 1
1 + null; // -> 1
1 + undefined // -> NaN
```
위와 같은 현상을 암묵적 타입 변환 혹은 타입 강제 변환이라 부른다.
우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.
ex) =, +=, -=, *=, /=, %=
참/거짓을 따진다. 이 결과를 if문 혹은 for문에 조건식으로 주로 사용한다.
var result = score >= 60 ? 'pass' : 'fail';
ex) ||, &&, !
'Cat' && 'Dog'; // => 'Dog'
위는 단축 평가의 예이다.
※ 단축 평가 : a || b일 경우 or연산자로 앞에서 1이 나오면 더 이상의 평가는 무의미하다. 그로 인해 a값만 반환한다. false || b일 경우 b를 반환 a && b일 경우에는 b까지 평가하고 나서야 반환 가능하기에 b를 반환한다.
쉼표 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과를 변환한다.
소괄호로 피연산자를 감싸는 그룹 연잔사는 표현식에서 가장 먼저 평가한다.
string, number, boolean, undefined, symbol, object, function 중 하나를 반환하며 null은 반환하지 않는다. null은 object를 반환한다.
ES7에서 도입된 지수 연산자로 좌항은 밑, 우항은 지수로 거듭 제곱한다. Math.pow보다 가독성이 좋다.
ex) ?. , ??, delete, new, instanceof, in
※ 이후에 언급된다. 책을 보면 해당 페이지를 확인할 수 있다.
일부 연산자는 다른 코드에 영향을 주는 부수 효과가 있다.
ex) =, ++, --, delete
-생략-
-생략-