연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만듭니다.
산술 연산자는 수학에서 사용할 법한(?) 연산자 입니다. +, -, *, /, %, ++, -- 등이 있습니다.
여기서 +와 -는 데이터 타입을 변경시킬 수 있다.
var x = '1';
console.log(+x); // 1, 숫자 타입으로 타입 변경
x = true;
console.log(+x); // 1, 숫자 타입으로 타입 변경
x = false;
console.log(+x); // 0, 숫자 타입으로 타입 변경
x='hello';
console.log(+x); //nan, 문자열을 숫자타입으로 변경할 수 없어서 NaN 반환
'1' + 2; // '12'
1 + '2'; // '12'
"hello" + " world" // hello world
할당 연사자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당합니다.
var x;
x = 10;
console.log(x);
비교 연산자는 좌항과 우항의 피연사자를 비교한 다음 그 결과를 불리언 값으로 반환합니다.
비교 연산자에는 ==, ===, !=, !== 이 있습니다.
이 중에 동등 비교(==) 연산자는 좌항과 우항의 피연산자 비교시 먼저 암묵적 타입 변환을 하는 것돠 달리 일치 비교(===)는 암묵적 타입 변환이 일어나지 않습니다.
그렇기 때문에 동등 비교보다는 일치 비교를 사용하는 것이 더 좋습니다.
5 == '5'; // true
5 === '5'; // false
삼항 조건 연산자는 조건식의 평가 결과에 따라 반환할 값을 결정 합니다.
"조건식 ? 조선식이 true일 때 반환할 값 : 조건식이 false 일때 반환할 값" 의 형태를 가지고 있습니다.
var x = 2;
var result = x % 2 ? '홀수' : '짝수';
논리 연산자는 우항과 좌항의 피연산자를 논리 연산 합니다.
true || false; // true
false && false; // true;
쉼표 연산자는 왼쪽 피연산자부터 차례대로 피연사자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과를 반환합니다.
소괄호로 피연사자를 감싸는 그룹 연산자는 자신의 피연사자인 표현식을 가장 먼저 평가 합니다.
typeof 연산자는 피연산자의 데이터 타입을 문자얼로 변환합니다. "string", "number", "boolean", "undefined", "symbol", "object", "function", "bigint" 중 하나를 반환합니다.
좌항의 피연사즐 밑으로 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환합니다.
2 ** 2; // 4