연산자operator
하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다.
이때 연산의 대상을 피연산자operand라고 함.
1. 산술arithmetic 연산자
1.1. 이항binary 산술 연산자
1.2. 단항unary 산술 연산자
1.3. 문자열 연결 연산자
1
2
3
console.log(1 + true);
console.log(1 + null);
console.log(+undefined);
1
2
3
2
1
NaN
이러한 걸 암묵적 타입 변환implicit coercion/타입 강제 변환type coercion이라 함.
2. 할당 연산자
할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가됨.
연쇄 할당 가능
1
2
3
4
5
var a, b, c;
a = b = c = 0;
console.log(a, ,b, c);
1
0 0 0
3. 비교comparison 연산자
3.1. 동등loose equality/일치strict equality 비교 연산자
이 둘은 비교하는 엄격성의 정도가 다름.
비교 연산자 | 의미 | 사례 | 설명 | 부수 효과 |
== | 동등 비교 | x == y | x 와 y 의값이 같음 | X |
=== | 일치 비교 | x === y | x 와 y 의값과 타입이 같음 | X |
!= | 부동등 비교 | x != y | x 와 y 의값이 다름 | X |
!== | 불일치 비교 | x !== y | x 와 y 의값과 타입이 다름 | X |
동등 비교 연산자
: 좌항과 우항의 피연산자 비교 시,
먼저 암묵적 타입 변환 통해 타입 일치시킨 후 같은 값인지 비교
일치 비교 연산자
: 좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여
true
를 반환.
★ 주의 사항
1
NaN === NaN;
1
false
NaN
은 자신과 일치하지 않는 유일한 값.
3.2. 대소 관계 비교 연산자
4. 삼항termary 조건 연산자
조건식의 평가 결과에 따라 반환할 값 결정.
1
var result = score >= 60 ? 'pass' : 'fail';
5. 논리logical 연산자
6. 쉼표 연산자
7. 그룹 연산자
연산자 우선순위가 가장 높다!
8. typeof
연산자
”string
”, “number
”, “boolean
”, “undefined
”, “symbol
”, “object
”, “function
“
中 하나를 반환.
“null
” 반환하는 경우 없음.
함수는 “function
” 반환.
미수정 버그인 부분
typeof
로 null
연산하면 object
반환함.
★주의
선언하지 않은 식별자를 typeof
로 연산하면 undefined
반환함.
9. 지수 연산자
좌항 => 밑base
우항 => 지수exponent
10. 그 외 연산자
연산자 | 개요 | 참고 |
?. | 옵셔널 체이닝 연산자 | |
?? | null 병합 연산자 | |
delete | 프로퍼티 삭제 | |
new | 생성자 함수 호출 시 사용하여 인스턴스 생성 | |
instanceof | 좌변 객체가 우변 생성자 함수와 연결된 인스턴스인지 판별 | |
in | 프로퍼티 존재 확인 |
11. 연산자의 부수 효과
부수 효과가 있는 연산자
할당 연산자(=
), 증가/감소 연산자(++
/--
), delete
연산자.