JavaScript의 연산자의 종류는 다음과 같다.
- 산술 연산자
- 증감 연산자
- 대입 연산자
- 비교 연산자
- 논리 연산자
- 삼항 연산자
- Nullish 연산자
- 비트 연산자
1. 산술 연산자
- + : 덧셈 연산자
- - : 뺄셈 연산자
- * : 곱셈 연산자
- / : 나눗셈 연산자
- % : 나머지 연산자
- ** : 지수 연산자
+ 연산자는 피연산자에 문자 데이터 타입이 있는 경우, 덧셈이 아니라 문자를 결합한다.
console.log(10 % 2);
// %연산자는 나눗셈을 한 후 몫이 아닌 나머지를 결과값으로 출력한다.
// 10에서 2를 나눈 후 그 나머지인 0이 출력된다.
console.log(2 ** 3);
// 2^3 = 8
2. 증감 연산자
숫자를 증가, 감소시키기 위해 사용되는 연산자.
- ++ : 증가
- -- :감소
let number = 10;
number++;
console.log(number); // 11출력
number--;
console.log(number); // 10출력
//코드의 차례대로 11로 증가했다가 10으로 다시 감소
변수 뒤에 연산자를 붙여서 사용한다.
3. 비교 연산자
크거나 작음, 같거나 같지 않음을 나타낼 때 사용하는 연산자.
- < 또는 > : 크거나 작은지 비교
- <= 또는 >= : 크거나 (작거나) 같은지 비교 (항상 <, >괄호가 먼저 나와야됨)
- == 또는 === : 같은지 비교(동등 또는 일치, 일치는 타입이나 이런게 완전히 같은지 좀더 빡빡한 기준)
- != 또는 !== : 동등한지 비교(! 는 부등호라고 생각하면 됨)
let a = 10;
let b = '10';
console.log(a < b); //false 출력
console.log(a == b); //true 출력
console.log(a === b); //false 출력
console.log(a !== b); //true 출력
참 또는 거짓으로 출력됨.
4. 논리 연산자
- && : AND
- || : OR
- ! : NOT
const a = 2 < 3;
const b = 10 > 20;
console.log(a && b); //false 출력
console.log(a || b); //true 출력
console.log( !a ); //false 출력
AND는 피연산자로 주어진 값이 모두 참일 때만 true, a는 true 이지만 b는 false이므로 false 값 출력.
OR은 피연산자로 주어진 값 중 하나라도 참이 있다면 true.
NOT은 피연산자의 값을 부정한다. a는 true 이므로 false 출력.
5. 삼항 연산자
조건(Condition)의 결과에 따라 값을 선택하는 간단한 if 문이라 생각하면 된다.
3개의 피연산자를 가진다.
let age = 17;
let isAdult = (age >= 18) ? "성인" : "미성년자";
console.log(isAdult); //미성년자 출력
- ? 앞은 조건
- : 앞은 조건이 참일 때 실행할 코드나 값.
- : 뒤는 조건이 거짓일 때 실행할 코드나 값.
6. Nullish 연산자
값이 null 또는 undefined일 때만 대체값을 사용하는 연산자.
const a = undefined;
const b = null;
const c = 'Hello';
console.log(a ?? b ?? c); //Hello 출력
let name = null;
let displayName = name ?? '이름 없음';
console.log(displayName); //이름 없음 출력
null, undefined가 아니라 확정되어 있는 변수를 반환한다.
false, 0, 빈 문자열(" ")같은 값은 그대로 인정한다는 점에서 ||(OR)연산자와의 차이다.
(Nullish는 null, undefined일 때만 대체값을 준다.)
7. 비트 연산자
인수를 32비트 정수로 변환한 다음 이진(Binary)연산을 수행하는 연산자.
- 숫자를 2진수로 바꿔, 각 비트 단위로 연산.(낮은 수준의 연산이지만 효율과 성능이 중요한 작업에서 사용됨)
- & : AND
- | : OR
- ~ : NOT
- ^ : XOR (배타적 논리합: 주어진 2개의 명제 가운데 1개만 참일 경우를 판단하는 논리 연산/ 다를 때 1, 같으면 0)
- << : LEFT SHIFT (비트를 왼쪽으로 밀고 0을 채움)
- >> : RIGHT SHIFT (부호를 유지하며 오른쪽으로 비트 이동)
웹 개발에 사용되는 JavaScript의 경우, 비트 연산자를 지원하긴 하지만 사용할 일이 거의 없다.
8. 대입 연산자
대입연산자는 =와 산술, 비트, 논리, Nullish연산자와 대입 연산을 합친 복합 대입 연산자로 구분할 수 있으며, 복합 대입 연산자의 종류는 다음과 같다.
- +=
- -=
- *=
- /=
- %=
- **=
- &&=
- ||=
- ??=
let number = 10;
number += 2;
console.log(number); //12 출력
number += 2;는
number = number + 2와 동일한 구문이다.
9. 전개 구문
전개 구문(Spread Syntax) 또는 연산자(Spread Operator)란 반복이 가능한(Iterable) 객체에 적용할 수 있는 문법.
배열이나 객체, 문자열의 요소를 각각 꺼내서 펼친다.
배열이나 객체, 함수 인자 등을 ...(세 개의 점)으로 펼칠 수 있게 해준다.
const hello = 'Hello';
const world = 'World';
console.log(...hello, ...world);
//H e l l o W o r l d 각각 펼쳐서 출력
const arr = [10, 20];
function sum(a, b) {
return a + b;
}
console.log(sum(...arr)); //30 출력
- arr은 [10, 20] 2개의 값을 가진 배열
- ...arr은 이걸 펼쳐서 > sum(10, 20)으로 바꿔줌
- 결과적으로 sum(10, 20)이 실행되어 30을 출력함
'코딩 > JavaScript 문법' 카테고리의 다른 글
| [JavaScript] 참조 데이터 타입(배열, 객체)과 Set, Map (1) | 2025.05.05 |
|---|---|
| [JavaScript] 문법 기초 1 (0) | 2025.05.05 |