연산자(operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산(operation)등을 수행하여 하나의 값을 만든다.
피연산자는 값으로 평가될 수 있는 표현식이어야 한다. 그리고 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식이다.
논리 연산자(logical operator)는 우항과 좌항의 피연산자(부정 논리 연산자의 경우 우항의 피연산자)를 논리 연산한다.
논리 연산자 종류: '||', '&&', '!'
논리합 또는 논리곱 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 논리합 또는 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.
var x, y, z;
x= 1, y=2, z = 3; // 3
typeof 연산자는 피연산자의 데이터 타입을 문자열로 반환한다.
typeof 연산자로 null 값을 계산해 보면 "null"이 아닌 "object"를 반환한다는 데 주의하자.
값이 null 타입인지 확인할 때는 typeof 연산자를 사용하지 말고 일치 연산자(===)를 사용하자.
선언하지 않은 식별자를 typeof 연산자로 연산해 보면 ReferenceError가 발생하지 않고 undefined를 반환한다.
ES7에서 도입된 지수 연산자(**)는 좌항의 피연산자를 밑(base)으로. 우항의 피연산자를 지수(exponent)로 거듭 제곱하여 숫자 값을 반환한다.
지수 연산자가 도입되기 이전에는 Math.pow 메서드를 사용했다. 지수 연산자는 Math.pow 메서드보다 가독성이 좋다.
음수를 거듭제곱의 밑으로 사용해 계산하려면 괄호로 묶어야 한다.
지수 연산자는 다른 산술 연산자와 마찬가지로 할당 연산자와 함께 사용할 수 있다.
* 모던 자바스크립트 Deep Dive ( 자바스크립트의 기본 개념과 동작 원리 ) / 이웅모 지음