JavaScript
JavaScript 연산자
kevinmj12
2025. 3. 27. 17:47
연산자
연산자는 하나 이상의 표현식을 대상으로 연산을 수행하여 하나의 값을 만드는 역할을 만든다.
예를 들어, 1 + 2 가 있을 때 연산자는 +이고 1과 2를 대상으로 연산을 수행하여 3이라는 값을 만든다.
그리고 1, 2는 피연산자라 불린다.
단항 연산자
단항 연산자는 하나의 피연산자만 사용하는 연산이다.
- void: 표현식을 평가할 때 값을 반환하지 않도록 지정한다.
- typeof: 평가 전의 피연산자 타입을 나타내는 문자열을 반환한다.
- delete: 객체의 속성을 삭제한다.
const a = { name: "apple" };
console.log(a); // { name: "apple" }
console.log(void a); // undefined
console.log(typeof a); // object
delete a.name;
console.log(a); // {}
산술 연산자
산술 연산자는 두 개의 숫자를 피연산자로 받아서 하나의 숫자를 반환한다.
- 단항 산술 연산자: 1개의 피 연산자를 산술 연산하여 숫자값을 반환한다.
- 이항 산술 연산자: 2개의 피 연산자를 산술 연산하여 숫자값을 반환한다.
// 단항 산술 연산자
let a = 1;
a++; // a = a + 1
console.log(a); // 2
a--; // a = a - 1
console.log(a); // 1
console.log(-a); // -1 (양수를 음수로 반전)
// 이항 산술 연산자
let b = 5;
let c = 2;
console.log(b + c); // 7 (덧셈)
console.log(b - c); // 3 (뺄셈)
console.log(b * c); // 10 (곱셈)
console.log(b / c); // 2.5 (나눗셈)
console.log(b % c); // 1 (나머지)
관계 연산자
관계 연산자는 피연산자를 비교하고 결과가 참인지 거짓인지에 따라 boolean값을 반환한다.
- in: 객체 내에 속성이 존재할 경우 true를 반환한다.
- instanceof: 특정 객체 타입에 속하면 true를 반환한다.
const a = { name: "apple" };
console.log("name" in a); // true
console.log("color" in a); // false
console.log(a instanceof Object); // true
console.log(a instanceof Number); // false
비교 연산자
비교 연산자는 피연산자를 비교하고, 결과가 참인지에 거짓인지에 따라 boolean 값을 반환한다.
피연산자로 숫자뿐만 아니라 문자열, 논리형, 객체 등의 타입이 들어올 수 있다.
- 동등 연산자(==): 서로 같으면 true
- 일치 연산자(===): 서로 같고, 타입까지 같으면 true
- 부동 연산자(!=): 서로 다르면 true
- 불일치 연산자(!==): 서로 다르고, 타입도 다르면 true
- 이외에도 >, >=, <, <= 등이 있다.
let a = 1;
let b = "1";
console.log(a == b); // true
console.log(a === b); // false
console.log(a != b); // false
console.log(a !== b); // true
논리 연산자
논리 연산자는 두 개의 피연산자 중 하나를 반환한다.
무조건 Boolean값을 리턴하지 않으며, 논리 연산자가 여러 개 있을 경우 우선순위에 따라 이를 실행하며 먼저 실행한 식의 결과에 따라서 뒤의 식을 실행한다.
- A && B (AND): A가 false일 경우 A를, A가 true일 경우 B를 반환한다.
- A || B (OR): A가 false일 경우 B를, A가 true일 경우 A를 반환한다.
null, undefined, 빈 문자열은 false로 평가하므로 이를 활용하여 &&는 null 검사, ||는 캐싱 값에 대해서 사용할 수 있다.
let a = true;
let b = "b";
console.log(a && b); // b
console.log(a || b); // true
let c = false;
let d = "d";
console.log(c && d); // false
console.log(c || d); // d
기타 연산자들
- 쉼표 연산자: 두 연산자를 모두 평가한 후 오른쪽 피연산자의 값을 반환한다.
- 문자열 연산자: 두 문자열 값을 서로 연결하여 새로운 문자열을 반환한다.
- 옵셔널 연산자: 객체의 속성을 참조시 유효하지 않은 경우 에러가 아닌 undefined를 반환한다.
- 할당 연산자: 오른쪽 피연산자가 왼쪽 피연산자에 값을 할당한다.(+=, -=, *=, /=, &=, **=, &&=, ||=)
- 삼항 연산자: A ? B : C 형태로 A가 true일 경우 B를, A가 false일 경우 C를 반환한다.
// 쉼표 연산자
let a = (1, 2);
console.log(a); // 2
// 문자열 연산자
console.log("Hello" + " " + "World"); // Hello World
// 옵셔널 연산자
const b = {
name: {
firstName: "Minje",
lastName: "Kim",
},
};
console.log(b.name?.firstName); // Minje
console.log(b.address?.city); // undefined
// 할당 연산자
let c = 3;
c += 5;
console.log(c); // 8
// 삼항 연산자
const d = true;
const e = false;
console.log(d ? "t" : "f"); // t
console.log(e ? "t" : "f"); // f