[ํ˜ผ๊ณตJS๐Ÿ“’] Chapter04. ๋ฐ˜๋ณต๋ฌธ

Camelliaยท2022๋…„ 1์›” 29์ผ
2

velog์— ๋„ฃ์„ ์งค ์ฐพ๋Š” ์žฌ๋ฏธ๋กœ ๊ณต๋ถ€ํ•˜๋Š”๋“ฏํ•œ..
์˜ด๋งˆ๋‚˜ ๋“œ๋””์–ด ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค.. ๊ณต๋ถ€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์กฐ๊ธˆ ๋” ์–ด๋ ค์›Œ์ง€๊ณ  ๋ณต์žกํ•ด์ง€๋Š”๋งŒํผ ๋ฐฐ์šฐ๋Š” ์žฌ๋ฏธ๋„ ๋”ํ•ด์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 3์ฃผ์ฐจ ์‹œ์ž‘! ๋น ๋น ์ƒค!._.

3์ฃผ์ฐจChapter๊ธฐ๋ณธ ๋ฏธ์…˜์„ ํƒ ๋ฏธ์…˜
3์ฃผ์ฐจChapter04๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ์™€ ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ์˜ ์˜๋ฏธ์™€ ์žฅ๋‹จ์  ์„ค๋ช…ํ•˜๊ธฐp.173 ํ™•์ธ ๋ฌธ์ œ 3๋ฒˆ ๋ฌธ์ œ ํ’€๊ณ , ํ’€์ด ๊ณผ์ • ์„ค๋ช…ํ•˜๊ธฐ

โœ… ๊ธฐ๋ณธ ๋ฏธ์…˜

๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ์™€ ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ์˜ ์˜๋ฏธ์™€ ์žฅ๋‹จ์  ์„ค๋ช…ํ•˜๊ธฐ

  • ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ
    -๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ : ์ฒ˜๋ฆฌ ํ›„์— ์›๋ณธ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
    -์˜ˆ์‹œ
> const a = '์•ˆ๋…•'; => ๋ณ€์ˆ˜ ์„ ์–ธ
> const b = 'ํ•˜์„ธ์š”';

> const c = a + b; => ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ฒ˜๋ฆฌ

> c
"์•ˆ๋…•ํ•˜์„ธ์š”"

> a
"์•ˆ๋…•" => ์›๋ณธ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
> b
"ํ•˜์„ธ์š”" => ์›๋ณธ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
  • ์žฅ์  : ์ž๋ฃŒ๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Œ
  • ๋‹จ์  : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์—†์Œ

  • ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ
    -ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ : ์ฒ˜๋ฆฌ ํ›„์— ์›๋ณธ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ
    -์˜ˆ์‹œ
> const array = ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜"]; => ๋ณ€์ˆ˜ ์„ ์–ธ

> array.push("๊ทค"); => ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•˜๋Š” ์ฒ˜๋ฆฌ๋ฅผ ํ•จ
4

> array
(4) ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", "๊ทค"] => ์›๋ณธ(array)๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋จ
  • ์žฅ์  : ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ๊ฑฐ๋Œ€ํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Œ
  • ๋‹จ์  : ์›๋ณธ์ด ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์œ„ํ—˜

โœ… ์„ ํƒ ๋ฏธ์…˜

p.173 ํ™•์ธ ๋ฌธ์ œ 3๋ฒˆ ๋ฌธ์ œ ํ’€๊ณ , ํ’€์ด ๊ณผ์ • ์„ค๋ช…ํ•˜๊ธฐ
-ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”์ง€ ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ตฌ๋ถ„ํ•˜์—ฌ๋ผ

โ‘  [ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ / ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌโญ•]

> const strA = "์‚ฌ๊ณผ, ๋ฐฐ, ๋ฐ”๋‚˜๋‚˜, ๊ทค"
undefined

> strA.split(",")
(4) ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", "๊ทค"]

> strA
"์‚ฌ๊ณผ, ๋ฐฐ, ๋ฐ”๋‚˜๋‚˜, ๊ทค"

์„ค๋ช…
strA์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ์ง€ ์•Š์•˜์Œ


โ‘ก [ํŒŒ๊ดด์  ์ฒ˜๋ฆฌโญ• / ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ]

> const arrayB = ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", "๊ทค"]
undefined

> arrayB.push("๊ฐ")
5

> arrayB
["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", "๊ทค", "๊ฐ"]

์„ค๋ช…
arrayB์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€œ


โ‘ข [ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ / ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌโญ•]

> const arrayC = [1, 2, 3, 4, 5]
undefined

> arrayC.map((x) => x*x)
(5) [1, 4, 9, 16, 25]

> arrayC
[1, 2, 3, 4, 5]

์„ค๋ช…
arrayC์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ์ง€ ์•Š์Œ


โ‘ฃ [ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ / ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌโญ•]

> const strD = " ์—ฌ๋ฐฑ์ด ํฌํ•จ๋œ ๋ฉ”์‹œ์ง€  "
undefined

> strD.trim()
"์—ฌ๋ฐฑ์ด ํฌํ•จ๋œ ๋ฉ”์‹œ์ง€"

> strD
" ์—ฌ๋ฐฑ์ด ํฌํ•จ๋œ ๋ฉ”์‹œ์ง€  "

์„ค๋ช…
strD์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ์ง€ ์•Š์Œ


04-1. ๋ฐฐ์—ด

1. ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

  • ๋ฐฐ์—ด : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์— ์„ ์–ธํ•ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•
  • ์š”์†Œ : ๋ฐฐ์—ด ๋‚ด๋ถ€์— ๋“ค์–ด ์žˆ๋Š” ๊ฐ’
  • ๋Œ€๊ด„ํ˜ธ[...]๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ
  • ๋‚ด๋ถ€์˜ ๊ฐ’์„ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•ด ์ž…๋ ฅ
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    [์š”์†Œ, ์š”์†Œ, ์š”์†Œ, ..., ์š”์†Œ]

์˜ˆ์‹œ

> const array = [273, 'String', true, function () {}, {}, [273, 103]];
undefined

> array 
  (6) [273, "String", true, f, {...}, Array(2)]
  --- ------------------------------------------
   โ†“                      โ†“       
์š”์†Œ๊ฐœ์ˆ˜                  ์š”์†Œ          

2. ๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ

  • ์ธ๋ฑ์Šค : ์š”์†Œ์˜ ์ˆœ์„œ ( *์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด์ด๋‹ˆ ๊ผญ ๊ธฐ์–ต!)
  • ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ 0๋ฒˆ์งธ๋กœ ํ‘œํ˜„
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    ๋ฐฐ์—ด[์ธ๋ฑ์Šค]

์˜ˆ์‹œ

> const numbers = [273, 52, 103, 32];
undefined

> numbers[0]
273

> numbers[1]
52

> numbers[1+1] => numbers[2]์™€ ๊ฐ™์€ ๋œป
103

> numbers[1*3] => numbers[3]๊ณผ ๊ฐ™์€ ๋œป
32

3. ๋ฐฐ์—ด ์š”์†Œ ๊ฐœ์ˆ˜ ํ™•์ธํ•˜๊ธฐ

  • ๋ฐฐ์—ด ๋‚ด๋ถ€์— ๋“ค์–ด ์žˆ๋Š” ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” length ์‚ฌ์šฉ
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    ๋ฐฐ์—ด.length

์˜ˆ์‹œ

> const fruits = ['๋ฐฐ', '์‚ฌ๊ณผ', 'ํ‚ค์œ„', '๋ฐ”๋‚˜๋‚˜']; => ๋ฐฐ์—ด ์ƒ์„ฑ
undefined

> fruits.length 
4 => ๋ฐฐ์—ด fruits์— 4๊ฐœ์˜ ์š”์†Œ๊ฐ€ ๋“ค์–ด์žˆ์œผ๋ฏ€๋กœ 4 ์ถœ๋ ฅ

> fruits[fruits.length-1]
"๋ฐ”๋‚˜๋‚˜" => fruits[4-1], ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์š”์†Œ์ธ "๋ฐ”๋‚˜๋‚˜"์ถœ๋ ฅ

4. ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • push() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ
    -๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” push() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ
    -์‚ฌ์šฉ๋ฐฉ๋ฒ•
    ๋ฐฐ์—ด.push(์š”์†Œ)

์˜ˆ์‹œ

> const todos = ['์šฐ์œ  ๊ตฌ๋งค', '์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ', 'ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…']; => ๋ฐฐ์—ด ์ƒ์„ฑ
undefined

> todos
(3) ["์šฐ์œ  ๊ตฌ๋งค", "์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ", "ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…"]

> todos.push('์ €๋… ์‹์‚ฌ ์ค€๋น„ํ•˜๊ธฐ');
4 => ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๊ธฐ์กด ์š”์†Œ ๊ฐœ์ˆ˜์—์„œ ์ถ”๊ฐ€๋œ ์š”์†Œ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ ์ „ ์š”์†Œ ๊ฐœ์ˆ˜์ธ 3์—์„œ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์„œ 4 ์ถœ๋ ฅ

> todos.push('ํ”ผ์•„๋…ธ ์—ฐ์Šตํ•˜๊ธฐ');
4 => ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๊ธฐ์กด ์š”์†Œ ๊ฐœ์ˆ˜์—์„œ ์ถ”๊ฐ€๋œ ์š”์†Œ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ ์ „ ์š”์†Œ ๊ฐœ์ˆ˜์ธ 4์—์„œ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์„œ 5 ์ถœ๋ ฅ

> todos
["์šฐ์œ  ๊ตฌ๋งค", "์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ", "ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…", "์ €๋… ์‹์‚ฌ ์ค€๋น„ํ•˜๊ธฐ", "ํ”ผ์•„๋…ธ ์—ฐ์Šตํ•˜๊ธฐ"] => ๋’ท๋ถ€๋ถ„์— 2๊ฐœ์˜ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋จ

  • ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ
    -์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ๊ณ ์ •์ด ์•„๋‹˜

์˜ˆ์‹œ

> const fruitsA = ['์‚ฌ๊ณผ', '๋ฐฐ', '๋ฐ”๋‚˜๋‚˜']; => 3๊ฐœ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด ์ƒ์„ฑ
Undefined

> fruitsA[10] = '๊ทค'; => ๋ฐฐ์—ด 10๋ฒˆ์งธ ์ธ๋ฑ์Šค์— "๊ทค"์„ ์ถ”๊ฐ€
"๊ทค"

> fruitsA
(11) ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", emptyx7, "๊ทค"] => ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” 4~9๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” empty

5. ๋ฐฐ์—ด ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ

์ฒซ์งธ, ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ
๋‘˜์งธ, ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ

  • ์ธ๋ฑ์Šค๋กœ ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ
    -๋ฐฐ์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ๋Š” splice() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ
    -splice() ๋ฉ”์†Œ๋“œ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์š”์†Œ๋ฅผ ์ค‘๊ฐ„์— ๋„ฃ์„ ๋•Œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    -์‚ฌ์šฉ๋ฐฉ๋ฒ•
    ๋ฐฐ์—ด.splice(์ธ๋ฑ์Šค, ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜)

์˜ˆ์‹œ

> const itemsA = ['์‚ฌ๊ณผ', '๋ฐฐ', '๋ฐ”๋‚˜๋‚˜']; => ๋ฐฐ์—ด ์ƒ์„ฑ
undefined

> itemsA.splice(2,1); => ๋ฐฐ์—ด์˜ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๋กœ๋ถ€ํ„ฐ 1๊ฐœ ์š”์†Œ ์ œ๊ฑฐ
["๋ฐ”๋‚˜๋‚˜"] => ์ œ๊ฑฐ๋œ ์š”์†Œ๊ฐ€ ๋ฐฐ์—ด๋กœ ๋ฆฌํ„ด

> itemsA => ๋ฐฐ์—ด์˜ ๊ฐ’์„ ํ™•์ธํ•ด๋ณด๋ฉด ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
(2) ["์‚ฌ๊ณผ", "๋ฐฐ"]

  • ๊ฐ’์œผ๋กœ ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ
    -๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ๋Š” ๋ฐฐ์—ด ๋‚ด๋ถ€์—์„œ ํŠน์ • ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” indexOf() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ถ”์ถœํ•œ ๋’ค splice() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ œ๊ฑฐ
    -indexOf() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด ๋‚ด๋ถ€์— ์š”์†Œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ด, ๋ฐฐ์—ด ๋‚ด๋ถ€์— ์—†์„ ๋•Œ๋Š” -1 ๋ฆฌํ„ด
    -์‚ฌ์šฉ๋ฐฉ๋ฒ•
    const ์ธ๋ฑ์Šค = ๋ฐฐ์—ด.indexOf(์š”์†Œ)
    ๋ฐฐ์—ด.splice(์ธ๋ฑ์Šค, 1)

์˜ˆ์‹œ

> const itemsB = ['์‚ฌ๊ณผ', '๋ฐฐ', '๋ฐ”๋‚˜๋‚˜']; => ๋ฐฐ์—ด ์ƒ์„ฑ
undefined

> const index = itemsB.indexOf('๋ฐ”๋‚˜๋‚˜'); => ๋ฐ”๋‚˜๋‚˜๊ฐ€ ์žˆ๋Š” ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ index์— ์ €์žฅ
undefined

> index => ๋ฐฐ์—ด ๋‚ด๋ถ€์— ๋ฐ”๋‚˜๋‚˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ์š”์†Œ์˜ ์ธ๋ฑ์Šค ์ถœ๋ ฅ
2

> itemsB.splice(index,1); => ๋ฐฐ์—ด์˜ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” 1๊ฐœ์˜ ์š”์†Œ ์ œ๊ฑฐ
["๋ฐ”๋‚˜๋‚˜"] => ์ œ๊ฑฐ๋œ ์š”์†Œ๊ฐ€ ๋ฐฐ์—ด๋กœ ๋ฆฌํ„ด

> itemsB => ๋ฐฐ์—ด์—์„œ ๋ฐ”๋‚˜๋‚˜๊ฐ€ ์ œ๊ฑฐ๋จ
(2) ["์‚ฌ๊ณผ", "๋ฐฐ"]

> itemsB.indexOf('๋ฐ”๋‚˜๋‚˜'); => ๋ฐฐ์—ด์— ๋ฐ”๋‚˜๋‚˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ -1 ์ถœ๋ ฅ
-1

6. ๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜(์ธ๋ฑ์Šค)์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” splice()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ
  • splice() ๋ฉ”์†Œ๋“œ์˜ 2๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— 0์„ ์ž…๋ ฅํ•˜๋ฉด splice() ๋ฉ”์†Œ๋“œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์œผ๋ฉฐ, 3๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์š”์†Œ ์ž…๋ ฅ
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    ๋ฐฐ์—ด.splice(์ธ๋ฑ์Šค, 0, ์š”์†Œ)

์˜ˆ์‹œ

> const itemsC = ["์‚ฌ๊ณผ", "๊ทค", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]; => ๋ฐฐ์—ด ์ƒ์„ฑ
undefined

> itemsC.splice(1, 0, "์–‘ํŒŒ"); 
[]

> itemsC => 1๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์–‘ํŒŒ๊ฐ€ ์ถ”๊ฐ€๋จ
(2) ["์‚ฌ๊ณผ", "์–‘ํŒŒ", "๊ทค", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]

๐Ÿ‘ ๋งˆ๋ฌด๋ฆฌ


1. ๋‹ค์Œ ๋ฐฐ์—ด๋“ค 2๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์€?
โ‘  ["1", "2", "3", "4"] => 3
โ‘ก ["์‚ฌ๊ณผ", "๋ฐฐ", "๋ฐ”๋‚˜๋‚˜", "๊ทค", "๊ฐ"] => ๋ฐ”๋‚˜๋‚˜
โ‘ข [52, 273, 32, 103, 57] => 32

์„ค๋ช…
๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ 3, ๋ฐ”๋‚˜๋‚˜, 32๊ฐ€ ๋‹ต์ด๋‹ค


2. ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”?
<script>
  const array = [1, 2, 3, 4]

  console.log(array.length);	
  console.log(array.push(5));
</script>

์‹คํ–‰๊ฒฐ๊ณผ : 4, 5

์„ค๋ช…
console.log(array.length) : array ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” 4์ด๊ธฐ ๋•Œ๋ฌธ์— 4๊ฐ€ ์ถœ๋ ฅ๋จ


3. ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”์ง€ ๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”์ง€ ๊ตฌ๋ถ„

์„ ํƒ๋ฏธ์…˜์œผ๋กœ!


04-2. ๋ฐ˜๋ณต๋ฌธ

1. for in ๋ฐ˜๋ณต๋ฌธ

  • for in ๋ฐ˜๋ณต๋ฌธ : ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๊บผ๋‚ด์„œ ํŠน์ • ๋ฌธ์ž๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
for (const ๋ฐ˜๋ณต ๋ณ€์ˆ˜ in ๋ฐฐ์—ด ๋˜๋Š” ๊ฐ์ฒด) {
  ๋ฌธ์žฅ
}
  • for ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฐ˜๋ณต ๋ณ€์ˆ˜์—๋Š” ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋“ค์ด ๋“ค์–ด์˜ด. ์ด๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

  • ์˜ˆ์‹œ

const todos = ['์šฐ์œ  ๊ตฌ๋งค', '์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ', 'ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…']
for (const i in todos) { => i : ์š”์†Œ์˜ ์ธ๋ฑ์Šค, todos : ๋ฐฐ์—ด
  console.log(`${i}๋ฒˆ์งธ ํ•  ์ผ : ${todos[i]}`)
}

์‹คํ–‰ ๊ฒฐ๊ณผ
0๋ฒˆ์งธ ํ•  ์ผ : ์šฐ์œ  ๊ตฌ๋งค
1๋ฒˆ์งธ ํ•  ์ผ : ์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ
2๋ฒˆ์จฐ ํ•  ์ผ : ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…

2. for of ๋ฐ˜๋ณต๋ฌธ

  • for of ๋ฐ˜๋ณต๋ฌธ : ์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ˜๋ณตํ•  ๋•Œ ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
for (const ๋ฐ˜๋ณต ๋ณ€์ˆ˜ of ๋ฐฐ์—ด ๋˜๋Š” ๊ฐ์ฒด) {
  ๋ฌธ์žฅ
}
  • for in ๋ฐ˜๋ณต๋ฌธ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฐ˜๋ณต ๋ณ€์ˆ˜์— ์š”์†Œ์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ

  • ์˜ˆ์‹œ

const todos = ['์šฐ์œ  ๊ตฌ๋งค', '์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ', 'ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…']
for (const todo of todos) { => todo : ์š”์†Œ๊ฐ’, todos : ๋ฐฐ์—ด
  console.log(`์˜ค๋Š˜์˜ ํ• ์ผ : ${todo}`)
}

์‹คํ–‰ ๊ฒฐ๊ณผ
์˜ค๋Š˜์˜ ํ•  ์ผ : ์šฐ์œ  ๊ตฌ๋งค
์˜ค๋Š˜์˜ ํ•  ์ผ : ์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ
์˜ค๋Š˜์˜ ํ•  ์ผ : ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…

3. for ๋ฐ˜๋ณต๋ฌธ

  • for ๋ฐ˜๋ณต๋ฌธ : ํŠน์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ”์šฉ์ ์ธ ๋ฐ˜๋ณต๋ฌธ
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
for (let i = 0; i < ๋ฐ˜๋ณต ํšŸ์ˆ˜; i++) {
  ๋ฌธ์žฅ
}
  • ์˜ˆ์‹œ(for ๋ฐ˜๋ณต๋ฌธ ๊ธฐ๋ณธ)
for (let i = 0; i < 5; i++) {
  console.log(`${i}๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.`)
}

์‹คํ–‰ ๊ฒฐ๊ณผ
0๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.
1๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.
2๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.
3๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.
4๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ(1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋”ํ•˜๊ธฐ)
let output = 0;
for (let i = 1; i <= 100; i++) { => 1๋ถ€ํ„ฐ 100๊นŒ์ง€ ๋ฐ˜๋ณต
  ouput += i
}
console.log(`1 ~ 100๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด ${output}์ž…๋‹ˆ๋‹ค.`)

์‹คํ–‰ ๊ฒฐ๊ณผ
1 ~ 100๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 5050์ž…๋‹ˆ๋‹ค.
  • for ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ๊ป˜ ๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ
    -for ๋ฐ˜๋ณต๋ฌธ์€ ๋ฐฐ์—ด๊ณผ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ์Œ
    -์˜ˆ์‹œ(1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋”ํ•˜๊ธฐ)
const todos = ['์šฐ์œ  ๊ตฌ๋งค', '์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ', 'ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…']
for (let i = 0; i < todos.length; i++) {
  console.log(`${i}๋ฒˆ์งธ ํ•  ์ผ : ${todos[i]}`)
}

์‹คํ–‰ ๊ฒฐ๊ณผ
0๋ฒˆ์งธ ํ•  ์ผ : ์šฐ์œ  ๊ตฌ๋งค
1๋ฒˆ์งธ ํ•  ์ผ : ์—…๋ฌด ๋ฉ”์ผ ํ™•์ธํ•˜๊ธฐ
2๋ฒˆ์งธ ํ•  ์ผ : ํ•„๋ผํ…Œ์Šค ์ˆ˜์—…

4. while ๋ฐ˜๋ณต๋ฌธ

  • while ๋ฐ˜๋ณต๋ฌธ : if ์กฐ๊ฑด๋ฌธ๊ณผ ํ˜•ํƒœ๊ฐ€ ๋งค์šฐ ๋น„์Šทํ•œ ๋ฐ˜๋ณต๋ฌธ
  • if ์กฐ๊ฑด๋ฌธ๊ณผ ๋‹ค๋ฅธ ์ ์€ ๋ฌธ์žฅ์„ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•˜๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ถˆ ํ‘œํ˜„์‹์ด true๋ฉด ๊ณ„์†ํ•ด์„œ ๋ฌธ์žฅ์„ ์‹คํ–‰
  • ๋ฌดํ•œ ๋ฃจํ”„ : ๋ฐ˜๋ณต๋ฌธ์ด ๋ฌดํ•œ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
while (๋ถˆ ํ‘œํ˜„์‹) {
  ๋ฌธ์žฅ
}
  • ์˜ˆ์‹œ
let i = 0;
while(true) {
  alert(`${i}๋ฒˆ์งธ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.`)
  i = i + 1
}
  • while ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ๊ป˜ ๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ
    -์˜ˆ์‹œ
let i = 0;
const array = [1, 2, 3, 4, 5]

while(i < array.length) {
  console.log(`${i} : ${array[i]}`)
  i++
}

์‹คํ–‰ ๊ฒฐ๊ณผ
0 : 1
1 : 2
2 : 3
3 : 4
4 : 5

5. break ํ‚ค์›Œ๋“œ

  • break ํ‚ค์›Œ๋“œ : switch ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ
  • ๋ฌดํ•œ ๋ฃจํ”„๋Š” break ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
while (true) {
  
}break
  • ์˜ˆ์‹œ
//๋ฐ˜๋ณต๋ฌธ
for(let i = 0; true; i++) {
  alert(i + '๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค.')
  
  //์ง„ํ–‰ ์—ฌ๋ถ€๋ฅผ ๋ฌผ์–ด๋ด„
  const isContinue = confirm('๊ณ„์† ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?')
  if (!isContinue) {
    break
  }
}

//ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ํ™•์ธ
alert('ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ')

6. continue ํ‚ค์›Œ๋“œ

  • continue ํ‚ค์›Œ๋“œ : ๋ฐ˜๋ณต๋ฌธ ์•ˆ์˜ ๋ฐ˜๋ณต ์ž‘์—…์„ ๋ฉˆ์ถ”๊ณ  ๋ฐ˜๋ณต๋ฌธ์˜ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€ ๋‹ค์Œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ง„ํ–‰
  • ์˜ˆ์‹œ1
//๋ฐ˜๋ณต๋ฌธ
for(let i = 0; i < 5; i++) {
  //ํ˜„์žฌ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต ์ž‘์—… ์ˆ˜ํ–‰
  continue
  alert(i)
}
  • ์˜ˆ์‹œ2
//๋ณ€์ˆ˜ ์„ ์–ธ
let output = 0;

//๋ฐ˜๋ณต๋ฌธ
for(let i = 1; i <= 10; i++) {
  //์กฐ๊ฑด๋ฌธ
  if(i%2===1) {
    //ํ™€์ˆ˜๋ฉด ํ˜„์žฌ ๋ฐ˜๋ณต์„ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต ์ˆ˜ํ–‰
    continue
  }
  output += i
}

alert(output) => ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด ํ™€์ˆ˜์ผ ๋•Œ๋Š” continueํ‚ค์›Œ๋“œ๋ฅผ ๋งŒ๋‚˜ ๋ฐ”๋กœ ๋‹ค์Œ ๋ฐ˜๋ณต ์ž‘์—…์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฏ€๋กœ ์ง์ˆ˜ํ•ฉ๋งŒ ๊ตฌํ•ด์ง

์‹คํ–‰ ๊ฒฐ๊ณผ
30

7. ์ค‘์ฒฉ ๋ฐ˜๋ชฉ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”ผ๋ผ๋ฏธ๋“œ

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>
        let output = ' ';

        for(let i = 0; i < 9; i++) {
            for(let j = 0; j < i; j++) {
                output += '*';
            }
            output += '\n';
        }

        alert(output);
    </script>
</head>
<body>
    
</body>
</html>


๐Ÿ‘ ๋งˆ๋ฌด๋ฆฌ


1. ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”?
<script>
  const array = ['์‚ฌ๊ณผ', '๋ฐฐ', '๊ทค', '๋ฐ”๋‚˜๋‚˜'];
  
  console.log('# for in ๋ฐ˜๋ณต๋ฌธ');
  for(const i in array) {
    console.log(i);
  }

  console.log('# for of ๋ฐ˜๋ณต๋ฌธ');
  for(const i of array) {
    console.log(i);
  }
</script>
<์‹คํ–‰ ๊ฒฐ๊ณผ>
# for in ๋ฐ˜๋ณต๋ฌธ
0
1
2
3
# for of ๋ฐ˜๋ณต๋ฌธ
์‚ฌ๊ณผ
๋ฐฐ
๊ทค
๋ฐ”๋‚˜๋‚˜

์„ค๋ช…
for in ๋ฐ˜๋ณต๋ฌธ์˜ i๋Š” ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋ฅผ ์ถœ๋ ฅ, for of ๋ฐ˜๋ณต๋ฌธ์˜ i๋Š” ๋ฐฐ์—ด ๊ฐ’ ์ถœ๋ ฅ


2. ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธก, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์–ด๋””๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?
<script>
  const array = []
  for(const i = 0; i < 3; i++) { => const๋ฅผ let์œผ๋กœ ๊ณ ์ณ์•ผ ํ•จ
    array.push((i + 1) * 3)
  }
  console.log(array)
</script>
<์‹คํ–‰ ๊ฒฐ๊ณผ>
3, 6, 9

์„ค๋ช…
for ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฐ˜๋ณต ๋ณ€์ˆ˜๋Š” letํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค


3. 1๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>
        let output = 1;

        for(let i = 1; i <= 100; i++) {
            output *= i;
        }

        alert(`1~100์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ๊ณฑํ•˜๋ฉด, ${output}์ž…๋‹ˆ๋‹ค.`);
    </script>
</head>
<body>
    
</body>
</html>


4. ํ”ผ๋ผ๋ฏธ๋“œ ๋งŒ๋“ค๊ธฐ
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>
        let output = ' ';
        const size = 5;

        for(let i = 1; i <= size; i++) {
            for(let j = size; j > i; j--) {
                output += ' ';
            }
            for(let k = 0; k < i*2-1; k++) {
                output += '*';
            }
            output += '\n';
        }

        for(let i = size-1; i > 0; i--) {
            for(let j = size; j > i; j--) {
                output += ' ';
            }
            for(let k = 0; k < i*2-1; k++) {
                output += '*';
            }
            output += '\n';
        }

        alert(output);
    </script>
</head>
<body>
    
</body>
</html>



์˜ค์˜ˆ!!!!!!!!!!!!! ๋“œ๋””์–ด ๋๋‚ฌ๋‹ค ํ™ํ™..
๋ฐ˜๋ณต๋ฌธ์„ ์‹œ์ž‘ํ•˜๋‹ˆ ๋“œ๋””์–ด ์ œ๋Œ€๋กœ ๋œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋Š๋‚Œ์ด๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณต์Šต์„ ํ•ด๋ณด๋‹ˆ ํ•™๊ต์—์„œ ๋ฐฐ์› ๋˜ ๊ฒƒ๋“ค์ด ๊ธฐ์–ต์ด ๋‚˜๋ฉด์„œ ์ข€ ๋” ์‰ฝ๊ณ  ์ฆ๊ฒ๊ฒŒ ๊ณต๋ถ€ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๋งˆ์ง€๋ง‰์— ๋ณ„์ฐ๊ธฐ ๋‚˜์™”์„ ๋•Œ๋Š” ์˜ค์šฐ.. ์™“์Œ‰.. ์˜ค์šฐ์˜ˆ.. ๋ณ„์ฐ๊ธฐ ์ฒ˜์Œ ํ•  ๋•Œ์˜ ์•…๋ชฝ์ด ๋– ์˜ค๋ฅด๋ฉด์„œ ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ ๋‹ค์Œ์žฅ์œผ๋กœ ๋„˜๊ฒจ๋ฒ„๋ฆด ๋ป”ํ–ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ํ”ผ๋ผ๋ฏธ๋“œ ์ฐ๊ธฐ๋Š” ์ข€ ์–ด๋ ค์›Œ์„œ ๋‹ต์ง€๋ฅผ ์ข€ ์ฐธ๊ณ ํ•˜๊ธด ํ–ˆ์ง€๋งŒ ์ฒ˜์Œ ํ”ผ๋ผ๋ฏธ๋“œ ์ฐ๊ธฐ๋ฅผ ํ–ˆ๋˜ ๋•Œ๋ณด๋‹ค๋Š” ์‹ค๋ ฅ์ด ์ข€ ๋Š”๊ฒƒ ๊ฐ™์•„์„œ ์‚ด์ง ๋ฟŒ๋“ฏํ–ˆ๋‹ค. b(๏ฟฃโ–ฝ๏ฟฃ)d ๋‚จ์€ ํ˜ผ๊ณตJS ๊ณต๋ถ€๋„ ๋น ์ƒค!

profile
๋น ์ƒค!

0๊ฐœ์˜ ๋Œ“๊ธ€