็„ก์ œ

Operator (์—ฐ์‚ฐ์ž) ๋ณธ๋ฌธ

<script>

Operator (์—ฐ์‚ฐ์ž)

yo-u-loo 2026. 5. 28. 14:18


๐ŸŸจ Operators

๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์ด๋‚˜ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๋น„๊ตํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐํ˜ธ.

 

1๏ธโƒฃ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž (Arithmetic Operators)

์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ๊ธฐ๋ณธ์ ์ธ ์ˆ˜ํ•™ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

let a = 10;
let b = 3;

console.log(a + b);  // 13
console.log(a - b);  // 7
console.log(a * b);  // 30
console.log(a / b);  // 3.3333...
console.log(a % b);  // 1 (10์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€)
console.log(a ** b); // 1000 (10์˜ 3์ œ๊ณฑ)

// ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž ํ™œ์šฉ: ํ™€์ง ํŒ๋ณ„
let num = 7;
console.log(num % 2 === 0 ? "์ง์ˆ˜" : "ํ™€์ˆ˜"); // "ํ™€์ˆ˜"
  • +: ๋ง์…ˆ.
  • -: ๋บ„์…ˆ.
  • *: ๊ณฑ์…ˆ.
  • /: ๋‚˜๋ˆ—์…ˆ.
  • %: ๋‚˜๋จธ์ง€. (ํ™€์ง, ๋ฐฐ์ˆ˜ ํŒ๋ณ„์— ํ™œ์šฉ)
  • **: ๊ฑฐ๋“ญ์ œ๊ณฑ. (์˜ˆ: 2 ** 3์€ 8)

 

2๏ธโƒฃ ๋Œ€์ž…/ํ• ๋‹น ์—ฐ์‚ฐ์ž (Assignment Operators)

๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ฐ’์„ ์—ฐ์‚ฐ ํ›„ ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค.

let total = 100;

total += 50; // total = total + 50๊ณผ ๊ฐ™์Œ (150)
total -= 20; // total = total - 20๊ณผ ๊ฐ™์Œ (130)
total *= 2;  // total = total * 2์™€ ๊ฐ™์Œ (260)
total /= 10; // total = total / 10๊ณผ ๊ฐ™์Œ (26)

console.log("์ตœ์ข… ํ•ฉ๊ณ„:", total); // 26
  • =: ๊ฐ’ ์ €์žฅ.
  • +=: ๋”ํ•œ ํ›„ ์ €์žฅ.
  • -=: ๋บ€ ํ›„ ์ €์žฅ.
  • *=: ๊ณฑํ•œ ํ›„ ์ €์žฅ.
  • /=: ๋‚˜๋ˆˆ ํ›„  ์ €์žฅ.
  • %=: ๋‚˜๋จธ์ง€ ์ €์žฅ.

๐Ÿ‘‰ ์—ฐ์‚ฐ๊ณผ ๋Œ€์ž…์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. (์˜ˆ: a += 5๋Š” a = a + 5์™€ ๋™์ผ)

 

3๏ธโƒฃ ๋น„๊ต ์—ฐ์‚ฐ์ž (Comparison Operators) (์ผ๋ฐ˜ ๋น„๊ต vs ์—„๊ฒฉํ•œ ๋น„๊ต)

๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ฐธ(true) ๋˜๋Š” ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

let x = 5;
let y = "5";

// ์ผ๋ฐ˜ ๋น„๊ต (๊ฐ’๋งŒ ๊ฐ™์œผ๋ฉด ์ฐธ)
console.log(x == y);  // true

// ์—„๊ฒฉํ•œ ๋น„๊ต (๊ฐ’๊ณผ ์ž๋ฃŒํ˜•์ด ๋ชจ๋‘ ๊ฐ™์•„์•ผ ์ฐธ)
console.log(x === y); // false (์ˆซ์ž 5์™€ ๋ฌธ์ž์—ด "5"๋Š” ๋‹ค๋ฆ„)

// ๋ถ€๋“ฑํ˜ธ ๋น„๊ต
console.log(10 > 5);  // true
console.log(10 <= 10); // true
console.log(10 !== 5); // true (10๊ณผ 5๋Š” ๊ฐ™์ง€ ์•Š์Œ)
  • ==: ๋™๋“ฑ ๋น„๊ต. (๊ฐ’๋งŒ ๋น„๊ต, ํƒ€์ž… ๋ฌด์‹œ)
  • ===: ์ผ์น˜ ๋น„๊ต. (๊ฐ’๊ณผ ํƒ€์ž… ๋น„๊ต) (๊ถŒ์žฅ)
  • !=: ๋ถ€๋“ฑ ๋น„๊ต. (๊ฐ‘์ด ๋‹ค๋ฆ„)
  • !==: ๋ถˆ์ผ์น˜ ๋น„๊ต. (๊ฐ’ ๋˜๋Š” ํƒ€์ž…์ด ๋‹ค๋ฆ„)
  • >: ํฌ๋‹ค.
  • <: ์ž‘๋‹ค.
  • >=: ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  • <=: ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

๐Ÿ‘‰ ์‹ค๋ฌด์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ ===, !== ์‚ฌ์šฉ.

 

4๏ธโƒฃ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž (Logical Operators)

์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์ „ํ•œ๋‹ค. (์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋ฌถ์–ด์„œ ํŒ๋‹จํ•  ๋•Œ ์‚ฌ์šฉ)

let hasID = true;      // ์‹ ๋ถ„์ฆ ์†Œ์ง€ ์—ฌ๋ถ€
let isAdult = false;   // ์„ฑ์ธ ์—ฌ๋ถ€

// AND (&&): ๋‘˜ ๋‹ค ์ฐธ์ด์–ด์•ผ ํ•จ
console.log(hasID && isAdult); // false (์‹ ๋ถ„์ฆ์€ ์žˆ์ง€๋งŒ ์„ฑ์ธ์ด ์•„๋‹˜)

// OR (||): ํ•˜๋‚˜๋งŒ ์ฐธ์ด์–ด์•ผ ํ•จ
console.log(hasID || isAdult); // true (์‹ ๋ถ„์ฆ์ด ์žˆ์œผ๋ฏ€๋กœ ํ†ต๊ณผ)

// NOT (!): ์ฐธ/๊ฑฐ์ง“์„ ๋’ค์ง‘์Œ
console.log(!hasID); // false (true์˜ ๋ฐ˜๋Œ€)
  • &&: AND. (๋ชจ๋‘ ์ฐธ์ด๋ฉด true)
  • ||: OR. (ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด true)
  • !: NOT. (๋ฐ˜๋Œ€๊ฐ’ ๋ฐ˜ํ™˜)

 

5๏ธโƒฃ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž (Increment / Decrement Operators)

๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฐ์†Œ์‹œํ‚ค๋ฉฐ, ์œ„์น˜์— ๋”ฐ๋ผ ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

let count = 0;

count++; // count = count + 1 (1)
console.log(count);

count--; // count = count - 1 (0)
console.log(count);

// ์ „์œ„(++n)์™€ ํ›„์œ„(n++)์˜ ์ฐจ์ด
let n = 5;
console.log(n++); // 5 ์ถœ๋ ฅ ํ›„ 6์œผ๋กœ ์ฆ๊ฐ€ (ํ˜„์žฌ ์ค„์—์„œ๋Š” ์ฆ๊ฐ€ ์ „ ๊ฐ’ ์‚ฌ์šฉ)
console.log(++n); // 7๋กœ ๋จผ์ € ์ฆ๊ฐ€ ํ›„ ์ถœ๋ ฅ (ํ˜„์žฌ ์ค„์—์„œ ์ฆ๊ฐ€๋œ ๊ฐ’ ์‚ฌ์šฉ)
  • ++: 1 ์ฆ๊ฐ€.
  • --: 1 ๊ฐ์†Œ.

 

6๏ธโƒฃ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž (Conditional Operator)

์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const age = 20;

const result = age >= 18 ? "์„ฑ์ธ" : "๋ฏธ์„ฑ๋…„์ž";

console.log(result); // ์„ฑ์ธ
  • ๊ตฌ์กฐ: ์กฐ๊ฑด์‹ ? ์ฐธ์ผ ๋•Œ ๊ฐ’ : ๊ฑฐ์ง“์ผ ๋•Œ ๊ฐ’.

๐Ÿ‘‰ if๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ค„์ธ ํ˜•ํƒœ.

 

7๏ธโƒฃ typeof ์—ฐ์‚ฐ์ž (Type Operator)

๋ฐ์ดํ„ฐ์˜ ์ž๋ฃŒํ˜•(type) ์„ ๋ฌธ์ž์—ด(string)๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

console.log(typeof 123);      // "number"
console.log(typeof "hello");  // "string"
console.log(typeof true);     // "boolean"
console.log(typeof undefined);// "undefined"
  • typeof๋Š” ๊ฐ’์ด ์–ด๋–ค ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋””๋ฒ„๊น…์ด๋‚˜ ์กฐ๊ฑด๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ™•์ธํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

 

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ ๋น„๊ต ์‹œ์—๋Š” === (์ผ์น˜ ์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค. โœ”๏ธ

โœ”๏ธ % (๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž)๋Š” ์ง์ˆ˜/ํ™€์ˆ˜, ๋ฐฐ์ˆ˜ ํŒ๋‹จ์— ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. โœ”๏ธ

โœ”๏ธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์กฐ๊ฑด๋ฌธ๋„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. โœ”๏ธ

 

 

๐Ÿ“‹ ์ฃผ์š” ์—ฐ์‚ฐ์ž ์š”์•ฝํ‘œ ๐Ÿ“‹

์ข…๋ฅ˜ ์—ฐ์‚ฐ์ž
์‚ฐ์ˆ  +, -, *, /, %, **
ํ• ๋‹น =, +=, -=, *=, /=
๋น„๊ต ==, ===, !=, !==, >, <, >=, <=
๋…ผ๋ฆฌ &&, ||, !
์ฆ๊ฐ ++, --
์‚ผํ•ญ ์กฐ๊ฑด์‹ ? ๊ฐ’1 : ๊ฐ’2
ํƒ€์ž… typeof

 


 

โš™๏ธ ์‹ค์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

// 1. ์‚ฐ์ˆ  ๋ฐ ๋Œ€์ž… ์—ฐ์‚ฐ
let score = 10;
score += 5; // score๋Š” 15
console.log(score % 2); // 1 (๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์œผ๋กœ ํ™€์ˆ˜์ž„์„ ํ™•์ธ)

// 2. ๋น„๊ต ์—ฐ์‚ฐ (์—„๊ฒฉํ•œ ๋น„๊ต)
console.log(10 == "10");  // true (๊ฐ’๋งŒ ๊ฐ™์œผ๋ฉด ๋จ)
console.log(10 === "10"); // false (์ž๋ฃŒํ˜•์ด ๋‹ค๋ฆ„: ์ˆซ์ž vs ๋ฌธ์ž์—ด)

// 3. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ
let isAdult = true;
let hasTicket = false;

// ์„ฑ์ธ์ด๊ณ  ํ‹ฐ์ผ“๋„ ์žˆ์–ด์•ผ ์ž…์žฅ ๊ฐ€๋Šฅ
console.log(isAdult && hasTicket); // false

// ์„ฑ์ธ์ด๊ฑฐ๋‚˜ ํ‹ฐ์ผ“์ด ์žˆ์œผ๋ฉด ์ž…์žฅ ๊ฐ€๋Šฅ
console.log(isAdult || hasTicket); // true