
하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만드는 역할
연산의 대상
값으로 평가될 수 있는 표현식이어야 함
피연산자를 대상으로 수학적 계산을 수행하여 새로운 숫자 값을 만듦
산술 연산이 불가능한 경우 NaN (Not a Number) 반환
피연산자의 개수에 따라 이항 산술 연산자 (Binary Arithmetic Operator)와 단항 산술 연산자 (Unary Arithmetic Operator)로 구분
이항 산술 연산자 (Binary Arithmetic Operator)
두 개의 피연산자를 산술 연산하여 숫자 값을 만듦
'+'는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작
모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과가 없음
ex) +, -, *, /, %
단항 산술 연산자 (Unary Arithmetic Operator)
한 개의 피연산자를 산술 연산하여 숫자 값을 만듦
'++', '--'와 같은 증감연산자는 전위에 위치할 때, 후위에 위치할 때 의미가 달라지며, 피연산자의 값을 변경하는 부수 효과가 있음
'+', '-'는 덧셈 뺄셈이 아닌 부호 연산자
ex) ++, --, +, -
우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당
변수 값이 변하는 부수 효과가 있음
할당문은 값으로 표현되는 표현식인 문으로서 할당된 값으로 평가
ex) =, +=, -=, *=, /=, %=
좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환
if문이나 for문과 같은 제어문의 조건식에서 주로 사용
ex) ==, ===, !=, !==, >, <, >=, <=
동등 비교 연산자 (==)
좌항과 우항의 피연산자를 비교할 때 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교
타입은 다르지만 암묵적 타입 변환 후 같은 값일 수 있다면 true를 반환
일치 비교 연산자 (===)
좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true를 반환
암묵적 타입 변환을 하지 않고 값을 비교하여 값을 예측하는 것이 동등 비교 연산자에 비해 비교적 쉬운 편
대소관계 비교 연산자 (>, <, >=, <=)
피연산자의 크기를 비교하여 불리언 값을 반환
조건식의 평가 결과에 따라 반환할 값을 결정
첫 번째 피연산자가 true이면, 두 번째 피연산자로 평가하고, 첫 번째 피연산자가 false이면, 세 번째 피연산자로 평가
삼항조건연산자 표현식은 값으로 평가할 수 있는 표현식인 문
값처럼 다른 표현식의 일부가 될 수 있어 매우 유용함
ex) (조건식) ? 조건식이 ture일 때 반환할 값 : 조건식이 false일 때 반환할 값
우항과 좌항의 피연산자를 논리 연산 (논리 부정 연산자 (!)의 경우 우항의 피연산자를 논리 연산)
논리 부정 연산자 (!)
언제나 불리언 값을 반환함
논리합 (||), 논리곱 (&&) 연산자
표현식의 결과가 불리언이 아닐 수도 있으며, 언제나 두 개의 피연산자 중 어느 한 쪽으로 평가
왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면, 마지막 피연산자의 평가 결과를 반환
소괄호 () 로 피연산자를 감싸는 그룹 연산자는 자신의 피연산자인 표현식을 가장 먼저 평가
그룹 연산자를 사용하면 연산자의 우선순위를 조절할 수 있으며, 연산자 우선순위가 가장 높다
피연산자의 데이터 타입을 문자열로 반환
'null'에 typeof 연산자를 수행하면 'null'이 아닌 'object'를 반환
(자바스크립트 초기 설계 단계에 발생하여 현재까지 수정되지 못함, null을 확인할 때는 'typeof' 대신 '===' 사용)
함수의 경우는 'function'을 반환
선언하지 않은 식별자를 typeof로 연산하면 ReferenceError가 발생하지 않고 undefined를 반환하므로 주의해야 함
ES7(ES2016)에 도입
좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환
이항 연산자 중에서 우선순위가 가장 높다
ex) **
여러 개의 연산자로 이루어진 문이 실행될 때, 연산자가 실행되는 순서
우선순위가 높을 수록 먼저 실행되며, 우선순위 조절이 필요한 경우 우선순위가 가장 높은 그룹 연산자를 사용하여 명시적 조절 권장
연산자의 어느 쪽 (좌항 or 우항)부터 평가를 수행할 것인지 나타내는 순서