피연산자를 대상으로 수학적 계산을 수행하여 새로운 숫자 값을 만들지만 산술 연산이 불가능한 경우 NaN을 반환한다.
🪝 부수효과: side effect
대부분의 연산자는 다른 코드에 영향을 주지 않지만 일부 연산자는 다른 코드에 영향을 주는 부수 효과가 있다.
ex) 할당 연산자, 증가/감소 연산자, delete
연산자
이항 산술 연산자
2개의 피연산자를 산술 연산하여 숫자 값을 만들고 부수효과가 없다.
쉽게 말해서 산술 연산을 해도 피연산자의 값이 바뀌지 않고 새로운 값을 만든다.
단항 산술 연산자
증가(++)/감소(—) 연산자는 피연산자의 값을 변경하는 부수효과가 있는데 쉽게 말하자면 피연산자의 값을 변경하는 암묵적인 할당이 이루어진다. 증가/감소 연산자는 연산자의 위치에 따라 의미가 달라지는데 피연산자 앞에 위치하면 전위 연산자, 뒤에 위치하면 후위 연산자라고 한다.
전위 연산자는 피연산자의 값을 증가/감소시킨 후에 다른 연산을 수행하며 후위 연산자는 다른 연산을 수행한 후에 피연산자의 값을 증가/감소 시킨다.
부호(+/-)를 바꾸는 연산자는 부수 효과가 없다.
문자열 연결 연산자
+
연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연결 연산자로 동작하고 외의 경우에는 산술 연산자로 동작한다.
할당 연산자는 오른족에 있는 피연산자의 평가 결과를 왼쪽에 있는 변수에 할당한다. 오른쪽의 변수에 값을 할당하기 때문에 변수 값이 변하는 부수효과가 존재한다.
자바스크립트 개발자라면 알아야 할 33가지 개념 #5 == vs === 3분만에 배우기 (번역)
===
엄격한 동등성(타입과 값)을 비교하며 타입과 값이 모두 같아야 true
를 반환한다.
5 === 5 // true
5 === '5' // false
5 === '3' // false
==
느슨한 동등 비교, 강제 형변환을 수행하는데 강제 형 변환이란 동등 연산자로 비교하기 전에 피연산자들을 공통 타입으로 만드는 행위를 말한다.
5 == 5; // true
5 == '5'; // true
5 === '3'; // false
조건식의 평가 결과에 따라 반환할 값을 결정하고 부수 효과는 없다.
조건식 ? 조건식이 true일 때 반환할 값 : 조건식이 false일 때 반환할 값;
const number = 4;
// 삼항 연산자
const result1 = (number % 2) ? '홀수' : '짝수';
// if ~ else문
const result;
if (number % 2) result = '홀수';
else result = '짝수';
논리 연산자 | 의미 |
---|---|
&& | 논리곱(AND) |
! | 부정(NOT) |
!
연산자는 늘 불리언 값을 반환하지만 ||, && 연산자의 평가 결과는 불리언 값을 반환할수도 있지만 2개의 피연산자 중 어느 한쪽으로 평가될수도 있다.