연산자

✒️ 2025-05-23 15:34 내용 수정


연산자 종류

종류 연산자 기능
최고연산자 . () 가장 먼저 연산
산술연산자 +, -, *, **, /, % 사칙연산, 나머지연산
증감연산자 ++, -- 1씩 증감
대입연산자 =, +=, -=, *=, /=, %=* 우변의 값을 좌변에 대입
비교연산자 >, >=, <, <=, ==, ===, !=, !== 두 값의 비교
논리연산자 &&, ||, ! 논리의 연산
비트연산자 &, |, ~, ^, >>, << 비트단위의 논리연산 및 시프트 연산
삼항연산자 조건식 ? A : B 조건식의 결과에 따라 A(true)와 B(false)를 선택
instanceof 연산자 A instanceof B 참조 변수가 참조하고 있는 인스턴스의 실제 타입 반환

산술 연산자

산술 연산자 설명
+ 덧셈
- 뺄셈
* 곱셈, ** 는 제곱
/ 나눗셈을 수행한 후 반환(실수형 결과)
% 나눗셈 후 나머지를 반환
let num1 = 10;
let num2 = 7;

console.log(num1 + "+" + num2 + "=" + (num1+num2));
console.log(num1 + "-" + num2 + "=" + (num1-num2));
console.log(num1 + "*" + num2 + "=" + (num1*num2));
console.log(num1 + "/" + num2 + "=" + (num1/num2));
console.log(num1 + "%" + num2 + "=" + (num1%num2));

대입 연산자

대입 연산자 설명
A = B A에 B 대입
A += B A + B , 결과를 A에 대입
A -= B A - B , 결과를 A에 대입
A *= B A * B , 결과를 A에 대입
A /= B A / B , 결과를 A에 대입
A %= B A % B , 결과를 A에 대입
var str = "<table border='1'>";
str+="<tr>";
str+="<td>1</td><td>2</td><td>3</td>";
str+="</tr>";
str+="</table>";

document.write(str);

대입연산자.png


증감 연산자

증감 연산자 설명
++n n 값을 1 증가시키고 연산 진행
n++ 연산 진행 후 n 값을 1 증가시킴
--n n 값을 1 감소시키고 연산 진행
n-- 연산 진행 후 n 값을 1 감소시킴

비교 연산자

비교연산자 설명
A > B A가 B보다 크다
A < B A가 B보다 작다
A >= B A가 B보다 크거나 같다
A <= B A가 B보다 작거나 같다
A == B A와 B의 데이터가 같다
A != B A와 B의 데이터가 다르다
A === B A와 B의 데이터가 같고, 타입이 같다
A !== B A와 B의 데이터가 다르거나, 타입이 다르다
console.log('10 == "10" :' + (10 == "10")); // true
console.log('10 != "10" :' + (10 != "10")); // false
console.log('10 === "10" :' + (10 === "10")); // false
console.log('10 !== "10" :' + (10 !== "10")); // true

비교연산자.png


논리 연산자

논리 연산자 설명
&& 논리 AND 연산. 논리식이 모두 true일 때 true 값을 반환
|| 논리 OR 연산. 논리식 중 하나라도 true일 때 true 값을 반환
! 논리 NOT 연산. 논리식 결과가 true일 때 false 값을, 결과가 false일 때 true 값을 반환

비트 연산자와 시프트 연산자

비트 연산자 설명
& 논리 AND 연산, 두 항이 모두 true일 때 true 값을 반환
| 논리 OR 연산, 두 항 중 하나라도 true일 때 true 값을 반환
^ 논리 XOR 연산, 두 항이 다르면 true, 같으면 false
~ 논리 NOT 연산, 참을 거짓으로, 거짓을 참으로 체크. -(값+1)을 반환
시프트 연산자 설명
<< 비트를 왼쪽으로 이동
>> 비트를 오른쪽으로 이동

문자 결합 연산자

console.log(num1 + "%" + num2 + "=" + (num1%num2));

삼항 연산자

console.log(10 > 3 ? "3보다 크다" : "3보다 작다");

쉼표 연산자

for(var i = 0, j = 3, i <= j, i++, j--) {}

delete 연산자

var arr = [1, 3];
delete arr[1];

console.log(arr);

for(value of arr) {
	console.log(value);
}

delete 연산자.png


in 연산자

var arr = [1, 5];
console.log(5 in arr);
console.log(10 in arr);
true
false

typeof 연산자

타입 설명
"number" 숫자, NaN
"string" 문자열(문자, 문자열 구분 없이 모두 포함)
"boolean" true, false
"undefined" 타입이 정해지지 않음
"object" 함수가 아닌 객체, null
"function" 함수
typeof "문자열" // "string"

var whatType = typeof 10;
console.log(whatType); // number

instanceof 연산자

var str = new String("문자열");

document.write(`str instanceof String : ${str instanceof String} <br>`);
document.write(`str instanceof Object : ${str instanceof Object} <br>`);
document.write(`str instanceof Array : ${str instanceof Array} <br>`);
document.write(`str instanceof Number : ${str instanceof Number} <br>`);

instanceof.png


void 연산자

var test = void("문자열을 넣었다.");

console.log(test);

void.png


Null 병합 연산자(Nullish coalescing operator)

const test = null ?? 'test value'; // test = 'test value';
const test2 = 5 ?? 'new test value'; // test2 = 5;

Optional chaining(?.)

const test = {
	id : 1,
	school : {
		name : 'test univ'
	}
}

const result1 = test.school?.location; // undefined
const result2 = test.testFunction?.(); // undefined