Skip to content

Latest commit

ย 

History

History
296 lines (213 loc) ยท 13.7 KB

operator.md

File metadata and controls

296 lines (213 loc) ยท 13.7 KB

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

์šฉ์–ด

  • ํ”ผ์—ฐ์‚ฐ์ž operand : โ€œ๊ฐ’โ€์ด๋ผ๋Š” ๋ช…์‚ฌ์˜ ์—ญํ• , ์—ฐ์‚ฐ์˜ ๋Œ€์ƒ
  • ์—ฐ์‚ฐ์ž operator : โ€œํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ ๋‹คโ€๋ผ๋Š” ๋™์‚ฌ์˜ ์—ญํ• , ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‘œํ˜„์‹์„ ๋Œ€์ƒ์œผ๋กœ ์‚ฐ์ˆ , ํ• ๋‹น, ๋น„๊ต, ๋…ผ๋ฆฌ, ํƒ€์ž…, ์ง€์ˆ˜ ์—ฐ์‚ฐ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•ด ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋งŒ๋“ ๋‹ค.

ํŠน์ง•

  • ํ”ผ์—ฐ์‚ฐ์ž๋Š” ํ‘œํ˜„์‹์ด์–ด์•ผ ํ•œ๋‹ค.
  • ์—ฐ์‚ฐ์ž + ํ”ผ์—ฐ์‚ฐ์ž ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฐ์‚ฐ์ž ํ‘œํ˜„์‹์€ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์‹์ด์–ด์•ผ ํ•œ๋‹ค.
  • ํ”ผ์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ์˜ ๋Œ€์ƒ์ด ๋˜์–ด์•ผํ•˜๋ฏ€๋กœ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์—ฐ์‚ฐ์ž๋Š” ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋œ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐํ•ด ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ ๋‹ค.

์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜

ํฌ๊ฒŒ 9๊ฐ€์ง€ ์ข…๋ฅ˜ (์‚ฐ์ˆ , ํ• ๋‹น, ๋น„๊ต, ์‚ผํ•ญ์กฐ๊ฑด, ๋…ผ๋ฆฌ, ์‰ผํ‘œ, ๊ทธ๋ฃน, ํƒ€์ž…, ์ง€์ˆ˜ ์—ฐ์‚ฐ์ž)

1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž arithmetic operator

  • ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ˆ˜ํ•™์  ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด ์ƒˆ๋กœ์šด ์ˆซ์ž ๊ฐ’์„ ๋งŒ๋“ ๋‹ค.
  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ NaN์„ ๋ฐ˜ํ™˜ํ•จ.
  • ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ์ดํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž์™€ ๋‹จํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

1) ์ดํ•ญbinary ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

  • 2๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฐ์ˆ  ์—ฐ์‚ฐํ•˜์—ฌ ์ˆซ์ž๊ฐ’์„ ๋งŒ๋“ ๋‹ค. ๋ถ€์ˆ˜ํšจ๊ณผ์—†์Œ (์–ด๋–ค ์‚ฐ์ˆ ์—ฐ์‚ฐ์„ ํ•ด๋„ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๋ฐ”๋€Œ์ง€์•Š๊ณ  ์ƒˆ๋กœ์šด๊ฐ’์„๋งŒ๋“ฆ)
  • + - * / % ๋ง์…ˆ ๋บ„์…ˆ ๊ณฑ์…ˆ ๋‚˜๋ˆ—์…ˆ ๋‚˜๋จธ์ง€

2) ๋‹จํ•ญunary ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

  • 1๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฐ์ˆ  ์—ฐ์‚ฐํ•˜์—ฌ ์ˆซ์ž๊ฐ’์„ ๋งŒ๋“ ๋‹ค. ++์™€ --๋Š” ๋ถ€์ˆ˜ํšจ๊ณผ O
  • ++ ์ฆ๊ฐ€ (๋ถ€์ˆ˜ํšจ๊ณผ O, ํ”ผ์—ฐ์‚ฐ์ž ์•”๋ฌต์  ํ• ๋‹น)
  • -- ๊ฐ์†Œ (๋ถ€์ˆ˜ํšจ๊ณผ O, ํ”ผ์—ฐ์‚ฐ์ž ์•”๋ฌต์  ํ• ๋‹น)
  • + ์•„๋ฌดํšจ๊ณผ์—†์Œ, ์Œ์ˆ˜๋ฅผ ์–‘์ˆ˜๋กœ ๋ฐ˜์ „ํ•˜์ง€๋„์•Š์Œ (๋ถ€์ˆ˜ํšจ๊ณผ X, ์•”๋ฌต์  ํƒ€์ž…๋ณ€ํ™˜ ๋ฐœ์ƒ)
  • - ์–‘์ˆ˜๋ฅผ ์Œ์ˆ˜๋กœ, ์Œ์ˆ˜๋ฅผ ์–‘์ˆ˜๋กœ ๋ฐ˜์ „ํ•œ ๊ฐ’ ๋ฐ˜ํ™˜ํ•จ (๋ถ€์ˆ˜ํšจ๊ณผ X, ์•”๋ฌต์  ํƒ€์ž…๋ณ€ํ™˜ ๋ฐœ์ƒ)

2-1) ์ฆ๊ฐ€/๊ฐ์†Œ(++/--) ์—ฐ์‚ฐ์ž

(1) ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์•”๋ฌต์  ํ• ๋‹น์ด ์ด๋ค„์ง„๋‹ค.

(2) ์œ„์น˜

  • ์ „์œ„ ์ฆ๊ฐ€/๊ฐ์†Œ ์—ฐ์‚ฐ์ž: ํ”ผ์—ฐ์‚ฐ์ž์˜ ์•ž์— ์œ„์น˜, ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ์ฆ๊ฐ€/๊ฐ์†Œ์‹œํ‚จ ํ›„ ๋‹ค๋ฅธ ์—ฐ์‚ฐ ์ˆ˜ํ–‰

  • ํ›„์œ„ ์ฆ๊ฐ€/๊ฐ์†Œ ์—ฐ์‚ฐ์ž: ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋’ค์— ์œ„์น˜, ๋จผ์ € ๋‹ค๋ฅธ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํ›„ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ์ฆ๊ฐ€/๊ฐ์†Œ์‹œํ‚จ๋‹ค

2-2) + ๋‹จํ•ญ ์—ฐ์‚ฐ์ž

(1) ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ˆซ์žํƒ€์ž…์ด ์•„๋‹ˆ๋ฉด ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
โ†’ ๋ถ€์ˆ˜ํšจ๊ณผ ์—†์Œ, ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์ˆซ์žํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์„ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

// ์•„๋ฌด ํšจ๊ณผ ์—†์Œ
+10; // 10 

+true; // 1
+false; // 0
+'Hello';// NaN

2-3) - ๋‹จํ•ญ ์—ฐ์‚ฐ์ž

(1) ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ฐ˜์ „ํ•œ๋‹ค.

(2) ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ˆซ์žํƒ€์ž…์ด ์•„๋‹ˆ๋ฉด ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
โ†’ ๋ถ€์ˆ˜ํšจ๊ณผ ์—†์Œ, ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์ˆซ์žํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์„ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

-(-10); // 10

-true; // -1
-'Hello'; // NaN

3) ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž +

    • ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž๋กœ ๋™์ž‘ํ•œ๋‹ค.
  • ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜implicit coercion (= ํƒ€์ž… ๊ฐ•์ œ ๋ณ€ํ™˜ type coercion)์ด ๋ฐœ์ƒํ•œ๋‹ค. : ๊ฐœ๋ฐœ์ž์˜ ์˜๋„์™€๋Š” ์ƒ๊ด€์—†์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ์˜ํ•ด ์•”๋ฌต์ ์œผ๋กœ ํƒ€์ž…์ด ์ž๋™ ๋ณ€ํ™˜๋˜๊ธฐ๋„ ํ•œ๋‹ค.
// ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž 
'1' + 2 // '12'

// ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž
1 + 2; // 3

// ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๋˜์–ด ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋จ.
1 + true; // 2 (true๋Š” 1)
1 + false; // 1 (false๋Š” 0)
1 + null; // 1 (null์€ 0)
1 + undefined; // NaN (undefined๋Š” ์ˆซ์ž๋กœ ํƒ€์ž… ๋ณ€ํ™˜๋˜์ง€ ์•Š์Œ)
+undefined; // NaN

2. ํ• ๋‹น ์—ฐ์‚ฐ์ž assignment operator : ์šฐํ•ญ ํ”ผ์—ฐ์‚ฐ์ž ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์ขŒํ•ญ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค. ๋ถ€์ˆ˜ํšจ๊ณผ O

์ขŒํ•ญ์˜ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฏ€๋กœ ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ณ€ํ•˜๋Š” ๋ถ€์ˆ˜ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

ํ• ๋‹น ์—ฐ์‚ฐ์ž ์˜ˆ์‹œ ๋™์ผ ํ‘œํ˜„ ๋ถ€์ˆ˜ํšจ๊ณผ
= x = 5 x = 5 O
+= x += 5 x = x + 5 O
-= x -= 5 x = x - 5 O
*= x *= 5 x = x * 5 O
/= x /= 5 x = x / 5 O
%= x %= 5 x = x % 5 O
  • ํ• ๋‹น๋ฌธ์€ ํ‘œํ˜„์‹์ธ ๋ฌธ์ด๋‹ค. ํ• ๋‹น๋ฌธ x=10์€ x์— ํ• ๋‹น๋œ ์ˆซ์ž๊ฐ’ 10์œผ๋กœ ํ‰๊ฐ€๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ• ๋‹น๋ฌธ์„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. (โ†’ ์—ฐ์‡„ ํ• ๋‹น ๊ฐ€๋Šฅ)
// ์—ฐ์‡„ ํ• ๋‹น
var a,b,c;
a = b = c = 0; // ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜์— ๋™์ผํ•œ ๊ฐ’์„ ์—ฐ์‡„ ํ• ๋‹นํ•จ

console.log(a,b,c); // 0 0 0 

3. ๋น„๊ต ์—ฐ์‚ฐ์ž comparison operator : ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•œ ๋‹ค์Œ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” if๋ฌธ, for๋ฌธ๊ณผ ๊ฐ™์€ ์ œ์–ด๋ฌธ์˜ ์กฐ๊ฑด์‹์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

1) ๋™๋“ฑ/์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž

  • ๋™๋“ฑ ๋น„๊ต loose equality ์—ฐ์‚ฐ์ž์™€ ์ผ์น˜ ๋น„๊ต strict equality ์—ฐ์‚ฐ์ž์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 
    • ๊ณตํ†ต์ ) ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋˜๋Š”์ง€ ๋น„๊ตํ•ด ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ์ฐจ์ด์ ) ๋น„๊ตํ•˜๋Š” ์—„๊ฒฉ์„ฑ ์ •๋„๊ฐ€ ๋‹ค๋ฅด๋‹ค.
      • ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” โ€œ๋Š์Šจํ•œ ๋น„๊ตโ€
      • ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” โ€œ์—„๊ฒฉํ•œ ๋น„๊ตโ€
๋น„๊ต ์—ฐ์‚ฐ์ž ์˜๋ฏธ ์˜ˆ์‹œ ์„ค๋ช… ๋ถ€์ˆ˜ํšจ๊ณผ
== ๋™๋“ฑ ๋น„๊ต x == y x์™€ y์˜ ๊ฐ’์ด ๊ฐ™์Œ X
=== ์ผ์น˜ ๋น„๊ต x === y x์™€ y์˜ ๊ฐ’๊ณผ ํƒ€์ž…์ด ๊ฐ™์Œ X
!= ๋ถ€๋™๋“ฑ ๋น„๊ต x != y x์™€ y์˜ ๊ฐ’์ด ๋‹ค๋ฆ„ X
!== ๋ถˆ์ผ์น˜ ๋น„๊ต x !== y x์™€ y์˜ ๊ฐ’๊ณผ ํƒ€์ž…์ด ๋‹ค๋ฆ„ X
  • ๋™๋“ฑ ๋น„๊ต(==) ์—ฐ์‚ฐ์ž

    • ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋จผ์ € ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์„ ํ†ตํ•ด ํƒ€์ž…์„ ์ผ์น˜์‹œํ‚จ ํ›„ ๊ฐ™์€ ๊ฐ’์ธ์ง€ ๋น„๊ตํ•œ๋‹ค.
    • ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ํƒ€์ž…์ด ๋‹ค๋ฅด๋”๋ผ๋„ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ ํ›„ ๊ฐ™์€ ๊ฐ’์ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋ฏ€๋กœ ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ž.
  • ์ผ์น˜ ๋น„๊ต(===) ์—ฐ์‚ฐ์ž

    • ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ํƒ€์ž…, ๊ฐ’ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒฝ์šฐ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š๊ณ  ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
    • ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฝ๋‹ค.
    • ์ฃผ์˜1) NaN
      • NaN์€ ์ž์‹ ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ๊ฐ’์ด๋‹ค. NaN !== NaN
      • ์ˆซ์ž๊ฐ€ NaN์ธ์ง€ ์กฐ์‚ฌํ•˜๋ ค๋ฉด ๋นŒํŠธ์ธ ํ•จ์ˆ˜ Number.isNaN์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ฃผ์˜2) ์–‘์˜ 0๊ณผ ์Œ์˜ 0
      • ์–‘์˜ 0๊ณผ ์Œ์˜ 0์„ ๋น„๊ตํ•˜๋ฉด true๋‹ค.
      • 0 === -0 // true
      • 0 == -0 // true
    • ํ•ด๊ฒฐ) Object.is ๋ฉ”์†Œ๋“œ ์ด์šฉํ• ๊ฒƒ.
      • Object.is ๋ฉ”์†Œ๋“œ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ •ํ™•ํ•œ ๋น„๊ต๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์–‘์˜ 0๊ณผ ์Œ์˜ 0๋„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ณ , NaN ๋น„๊ตํ•˜๋ฉด true ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      • Object.is(-0, +0); // false
      • Object.is(NaN, NaN); // true
  • ๋ถ€๋™๋“ฑ ๋น„๊ต์—ฐ์‚ฐ์ž(!=)๋Š” ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž(==)์™€ ๋ฐ˜๋Œ€

  • ๋ถˆ์ผ์น˜ ๋น„๊ต์—ฐ์‚ฐ์ž(!==)๋Š” ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž(===)์™€ ๋ฐ˜๋Œ€

2) ๋Œ€์†Œ ๊ด€๊ณ„ ๋น„๊ต ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋Œ€์†Œ ๊ด€๊ณ„ ๋น„๊ต ์—ฐ์‚ฐ์ž ์˜ˆ์‹œ ์„ค๋ช… ๋ถ€์ˆ˜ํšจ๊ณผ
> x > y x๊ฐ€ y๋ณด๋‹ค ํฌ๋‹ค X
< x < y x๊ฐ€ y๋ณด๋‹ค ์ž‘๋‹ค X
>= x >= y x๊ฐ€ y๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค X
<= x <= y x๊ฐ€ y๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค X

4. ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ternary operator : ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฐ˜ํ™˜ํ•  ๊ฐ’์„ ๊ฒฐ์ •ํ•œ๋‹ค. ๋ถ€์ˆ˜ํšจ๊ณผ๋Š” X

์กฐ๊ฑด์‹ ? ์กฐ๊ฑด์‹์ด true์ผ๋•Œ ๋ฐ˜ํ™˜ํ•  ๊ฐ’ : ์กฐ๊ฑด์‹์ด false์ผ๋•Œ ๋ฐ˜ํ™˜ํ•  ๊ฐ’

  • ์ฒซ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž(์กฐ๊ฑด์‹)์ด true๋กœ ํ‰๊ฐ€๋˜๋ฉด ๋‘๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , false๋กœ ํ‰๊ฐ€๋˜๋ฉด ์„ธ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์กฐ๊ฑด์‹ ํ‰๊ฐ€๊ฒฐ๊ณผ๊ฐ€ ๋ถˆ๋ฆฌ์–ธ๊ฐ’์ด ์•„๋‹ˆ๋ฉด ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๋œ๋‹ค.
  • ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ํ‘œํ˜„์‹์€ ํ‘œํ˜„์‹์ธ ๋ฌธ์ด๋ฏ€๋กœ ๊ฐ’์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ifโ€ฆelse๋ฌธ์€ ํ‘œํ˜„์‹์ด ์•„๋‹Œ ๋ฌธ์ด๋ฏ€๋กœ ๊ฐ’์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • ์šฉ๋„: ์กฐ๊ฑด์— ๋”ฐ๋ผ ์–ด๋–ค ๊ฐ’์„ ๊ฒฐ์ •ํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉ. ๋งŒ์•ฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ๋ฌธ์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ifโ€ฆelse๋ฌธ์ด ๋” ๊ฐ€๋…์„ฑ ์ข‹๋‹ค.

5. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž logical operator : ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐํ•œ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์˜๋ฏธ ๋ถ€์ˆ˜ํšจ๊ณผ
๋…ผ๋ฆฌํ•ฉ๊ธฐํ˜ธ ๋…ผ๋ฆฌํ•ฉ(OR) X
&& ๋…ผ๋ฆฌ๊ณฑ(AND) X
! ๋ถ€์ •(NOT) X
true || false; // true

false && true; // false

!true; // false
!false; // true
  • ๋…ผ๋ฆฌ ๋ถ€์ •(!) ์—ฐ์‚ฐ์ž๋Š” ๋ถˆ๋ฆฌ์–ธ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋งŒ์•ฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์ด ์•„๋‹ˆ๋ฉด ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์œผ๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๋œ๋‹ค.
  • ๋…ผ๋ฆฌํ•ฉ(||) ๋˜๋Š” ๋…ผ๋ฆฌ๊ณฑ(&&) ์—ฐ์‚ฐ์ž๋Š” 2๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–ด๋Š ํ•œ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋œ๋‹ค. ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์ด ์•„๋‹์ˆ˜๋„์žˆ์Œ
  • ๋“œ ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™

6. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž (, ) : ์™ผ์ชฝ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ๋งˆ์ง€๋ง‰ ํ”ผ์—ฐ์‚ฐ์ž ํ‰๊ฐ€๊ฐ€ ๋๋‚˜๋ฉด ๋งˆ์ง€๋ง‰ ํ”ผ์—ฐ์‚ฐ์ž ํ‰๊ฐ€๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var x, y, z;

x = 1, y = 2, z = 3;// 3

7. ๊ทธ๋ฃน ์—ฐ์‚ฐ์ž ( โ€˜( ์†Œ๊ด„ํ˜ธ )โ€™ ) : ์†Œ๊ด„ํ˜ธ๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ฐ์‹ธ๋ฉฐ, ๊ฐ€์žฅ ๋จผ์ € ํ‰๊ฐ€ํ•œ๋‹ค. ๊ทธ๋ฃน์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’๋‹ค.

๊ทธ๋ฃน ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.

8. typeof ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • typeof ์—ฐ์‚ฐ์ž๋Š” 8๊ฐ€์ง€ โ€œstring, number, boolean, undefined, symbol, object, function, bigintโ€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ํ•จ์ˆ˜๋Š” function์„ ๋ฐ˜ํ™˜ํ•จ.
  • typeof ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ž์—ด์€ 7๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  • ์„ ์–ธํ•˜์ง€์•Š์€ ์‹๋ณ„์ž๋ฅผ typeof ์—ฐ์‚ฐํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (ReferenceError๊ฐ€ ์•„๋‹Œ..)
typeof null; // object "null์ด ์•„๋‹Œ object๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. <-- ***์ฃผ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฒซ๋ฒˆ์งธ ๋ฒ„๊ทธ!!!!!!!!!!!!!!!!!!!!****

//null ํƒ€์ž…์ธ์ง€ ํ™•์ธํ• ๋•Œ๋Š” ์ผ์น˜ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜์ž
foo === null;

typeof undeclared; // undefined

9. ์ง€์ˆ˜ ์—ฐ์‚ฐ์ž : ์ขŒํ•ญ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ‘base์œผ๋กœ, ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์ˆ˜exponent๋กœ ๊ฑฐ๋“ญ ์ œ๊ณฑํ•˜์—ฌ ์ˆซ์ž๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ์Œ์ˆ˜๋ฅผ ๊ฑฐ๋“ญ์ œ๊ณฑ์˜ ๋ฐ‘์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์•ผํ•œ๋‹ค.
  • ์ง€์ˆ˜์—ฐ์‚ฐ์ž์˜ ๊ฒฐํ•ฉ ์ˆœ์„œ๋Š” ์šฐํ•ญ์—์„œ ์ขŒํ•ญ์ด๋‹ค. (์šฐ๊ฒฐํ•ฉ์„ฑ)
    • 2 ** 3 ** 2; // 512
  • ์ง€์ˆ˜์—ฐ์‚ฐ์ž์™€ ํ• ๋‹น์—ฐ์‚ฐ์ž๋ฅผ ๊ฒฐํ•ฉ
    • num **= 2;
  • ์ง€์ˆ˜์—ฐ์‚ฐ์ž๋Š” ์ดํ•ญ์—ฐ์‚ฐ์ž ์ค‘์—์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’๋‹ค.
2 ** 0; // 1
2 ** 2; // 4

/* ์Œ์ˆ˜๋ฅผ ๊ฑฐ๋“ญ์ œ๊ณฑ์˜ ๋ฐ‘์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์•ผํ•œ๋‹ค. */
(-5) ** 2; // 25

/* Math.pow ๋ฉ”์„œ๋“œ๋กœ๋„ ๊ฐ€๋Šฅ */

Math.pow(2, 2); // 4
Math.pow(2, 0); // 1

์—ฐ์‚ฐ์ž์˜ ๋ถ€์ˆ˜ํšจ๊ณผ

  • ๋ถ€์ˆ˜ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ์—ฐ์‚ฐ์ž๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ค€๋‹ค.
  • ๋ถ€์ˆ˜ํšจ๊ณผ๋Š” ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๋ฐ”๋€๋‹ค๋Š” ๋œป
  • ํ• ๋‹น ์—ฐ์‚ฐ์ž(=), ์ฆ๊ฐ€/๊ฐ์†Œ ์—ฐ์‚ฐ์ž(++/--), delete ์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„

์—ฌ๋Ÿฌ๊ฐœ์˜ ์—ฐ์‚ฐ์ž๋กœ ์ด๋ค„์ง„ ๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ ์—ฐ์‚ฐ์ž๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋งํ•œ๋‹ค.

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์„ ์ˆ˜๋ก ๋จผ์ € ์‹คํ–‰๋จ

์šฐ์„ ์ˆœ์œ„ ์—ฐ์‚ฐ์ž
1 ( ) ์†Œ๊ด„ํ˜ธ
2 new(๋งค๊ฐœ๋ณ€์ˆ˜ ์กด์žฌ), .// ๋ฉค๋ฒ„์ ‘๊ทผ, [ ] //๊ณ„์‚ฐ๋œํ”„๋กœํผํ‹ฐ์ ‘๊ทผ, ( ) //ํ•จ์ˆ˜ํ˜ธ์ถœ, ?. // ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž
3 new(๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฏธ์กด์žฌ)
4 x++, x-- ํ›„์œ„์ฆ๊ฐ์—ฐ์‚ฐ์ž
5 !x, +x, -x, ++x, --x, typeof, delete
6 ** // ์ดํ•ญ ์—ฐ์‚ฐ์ž์ค‘ ๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„ ๋†’๋‹ค
7 * / %
8 + -
9 < , <= , > , >= , in, instanceof
10 == != === !==
11 ?? //null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž
12 &&
13 ๋…ผ๋ฆฌํ•ฉ
14 ? โ€ฆ : โ€ฆ ์‚ผํ•ญ์กฐ๊ฑด์—ฐ์‚ฐ์ž
15 = += -= ๋“ฑ ํ• ๋‹น ์—ฐ์‚ฐ์ž
16 , ์‰ผํ‘œ ์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž์˜ ๊ฒฐํ•ฉ์ˆœ์„œ

์—ฐ์‚ฐ์ž ๊ฒฐํ•ฉ์ˆœ์„œ๋ž€ ์—ฐ์‚ฐ์ž์˜ ์–ด๋Š ์ชฝ(์ขŒํ•ญ or ์šฐํ•ญ)๋ถ€ํ„ฐ ํ‰๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆœ์„œ์ด๋‹ค.

๊ฒฐํ•ฉ ์ˆœ์„œ ์—ฐ์‚ฐ์ž
์ขŒํ•ญ โ†’ ์šฐํ•ญ + - / % < <= > >= &&
์šฐํ•ญ โ†’ ์ขŒํ•ญ ++ -- ํ• ๋‹น์—ฐ์‚ฐ์ž !x +x -x ++x --x typeof delete ์‚ผํ•ญ์กฐ๊ฑด์—ฐ์‚ฐ์ž, **์ง€์ˆ˜์—ฐ์‚ฐ์ž