๋ชฉ๋ก๐Ÿ’ป Development/JavaScript (18)

roqkf

[JavaScript] ๋น„๋™๊ธฐ

๋น„๋™๊ธฐ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์ปคํ”ผ์ˆ์—์„œ ์ปคํ”ผ๋ฅผ ์ฃผ๋ฌธํ•˜๋ ค๊ณ  ์ค„์„ ์„ ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋จผ์ € ์˜จ A๊ฐ€ ์ฃผ๋ฌธํ•ด์„œ ์ปคํ”ผ๋ฅผ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ B๋Š” ์ฃผ๋ฌธ์กฐ์ฐจ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ blocking์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. => ํ•˜๋‚˜์˜ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ด์–ด์ด์ง€๋Š” ์ž‘์—…์„ ๋ง‰๋Š”๋‹ค! [B๋Š” A๊ฐ€ ์ปคํ”ผ๋ฅผ ๋ฐ›๋Š” ์‹œ์ ๊ณผ B๊ฐ€ ์ฃผ๋ฌธ์„ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์ด ๊ฐ™๋‹ค] => ์ด์™€ ๊ฐ™์€ ์ƒํ™ฉ์„ "๋™๊ธฐ์ "์ด๋‹ค๋ผ๊ณ  ํ•œ๋‹ค. callback review ๋‹ค๋ฅธ ํ•จ์ˆ˜(A)์˜ ์ „๋‹ฌ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ํ•จ์ˆ˜ parameter๋ฅผ ๋„˜๊ฒจ๋ฐ›๋Š” ํ•จ์ˆ˜(A)๋Š” callback ํ•จ์ˆ˜(B)๋ฅผ ํ•„์š”์— ๋”ฐ๋ผ ์ฆ‰์‹œ ์‹คํ–‰ํ•  ์ˆ˜๋„, ์•„๋‹ˆ๋ฉด ๋‚˜์ค‘์— ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค function B(){ console.log('called at the back!'); } function A(callback){ cal..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:26
[JavaScript] prototype๊ณผ Prototype Chain

prototype ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์œผ๋ฉฐ, ์ƒ์†๋˜๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด๋Š” ํ”„๋กœํ† ํƒ€์ž…์ด๋ž€ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด๋“ค์€ ๊ทธ๋“ค์˜ ํ”„๋กœํ† ํƒ€์ž…์œผ๋กœ๋ถ€ํ„ฐ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค. prototype ๊ฐ์ฒด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด๋“ค์€ ์ž์‹ ์˜ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด or ํ”„๋กœํ† ํƒ€์ž…์ด๋ผ๊ณ  ํ•œ๋‹ค! prototype ํ”„๋กœํผํ‹ฐ ํ•จ์ˆ˜ ๊ฐ์ฒด๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ ํ•จ์ˆ˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉ๋  ๋•Œ, ์ด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด(ํ”„๋กœํ† ํƒ€์ž…)์„ ๊ฐ€๋ฆฌํ‚ด proto ํ”„๋กœํผํ‹ฐ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•ด์„œ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๋Š” ์ธํ„ฐ๋„ ์Šฌ๋ก ๊ฐ์ฒด ์ž…์žฅ์—์„œ๋Š” ์ž์‹ ์˜ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•˜๋Š” prototype ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด pr..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:26
[JavaScript] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ ˆ์ฐจ์  ์–ธ์–ด์™€ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด ์ ˆ์ฐจ์  ์–ธ์–ด: ์ดˆ๊ธฐ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค (C, ํฌํŠธ๋ž€ ๋“ฑ), ์ˆœ์ฐจ์ ์ธ ๋ช…๋ น์˜ ์กฐํ•ฉ - ์ ˆ์ฐจ ์ง€ํ–ฅ: ํ”„๋กœ๊ทธ๋žจ์ด ๊ธฐ๋Šฅ ์ค‘์‹ฌ, "๋ฌด์—‡์„ ์–ด๋–ค ์ ˆ์ฐจ๋กœ ํ•  ๊ฒƒ์ธ๊ฐ€" ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด: "ํด๋ž˜์Šค"๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ฒญ์‚ฌ์ง„์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ ์ž‘์„ฑ(Java, C++, C# ๋“ฑ) - ๊ฐ์ฒด ์ง€ํ–ฅ: ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ฐ์ฒด๊ฐ€ ์ค‘์‹ฌ, "๋ˆ„๊ฐ€ ์–ด๋–ค ์ผ์„ ํ•  ๊ฒƒ์ธ๊ฐ€" OOP ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ์ฒ ํ•™ ๋ชจ๋“  ๊ฒƒ์€ ๋กœ ๊ทธ๋ฃนํ™” 4๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋…(์บก์Аํ™”, ์ƒ์†, ์ถ”์ƒํ™”, ๋‹คํ˜•์„ฑ) OOP 4๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋… 1. Encapsulation (์บก์Аํ™”) - ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ๋Š” ๊ฒƒ - ์€๋‹‰: ๊ตฌํ˜„์€ ์ˆจ๊ธฐ๊ณ , ๋™์ž‘์€ ๋…ธ์ถœ - ๋А์Šจํ•œ ๊ฒฐํ•ฉ์— ์œ ๋ฆฌํ•จ: ์–ธ์ œ๋“ ์ง€ ๊ตฌํ˜„์„ ์ˆ˜์ • ๊ฐ€๋Šฅ - ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์€๋‹‰์— ํฌ์ปค์Šค๊ฐ€ ๋งž..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:25
[JavaScript] ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์— ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋“ค์˜ ์—ญํ• ์ด ๋ฌด์—‡์ธ์ง€ ์ •์˜ํ•ด ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”์‹œ์ผœ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์œ ๊ธฐ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ• ํ•˜๋‚˜์˜ ๋ชจ๋ธ์ด ๋˜๋Š” ์ฒญ์‚ฌ์ง„์„ ๋งŒ๋“ค๊ณ , ๊ทธ ์ฒญ์‚ฌ์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด - ๊ฐ์ฒด: ์‹ค์ƒํ™œ์—์„œ ์“ฐ๋Š” ๋ชจ๋“  ๊ฒƒ ํ•˜๋‚˜์˜ ๋ชจ๋ธ์ด ๋˜๋Š” ์ฒญ์‚ฌ์ง„์„ ๋งŒ๋“ค๊ณ , ๐Ÿ‘‰ "class" ๊ทธ ์ฒญ์‚ฌ์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๐Ÿ‘‰ "instance" ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด ๐Ÿ‘‰ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ class ์ •์˜ํ•˜๊ธฐ! ES5 VS ES6 function Car(brand, name, color){ // ์ธ์Šค..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:24
[JavaScript] ๊ณ ์ฐจํ•จ์ˆ˜

์ผ๊ธ‰ ๊ฐ์ฒด ๋Œ€ํ‘œ์ ์ธ ์ผ๊ธ‰ ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜๋Š” ํ•จ์ˆ˜! ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋‹ค ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋กœ์„œ ๋ฆฌํ„ด๋  ์ˆ˜ ์žˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค(ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด์˜ ์š”์†Œ, ๊ฐ์ฒด์˜ ๊ฐ’์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค!) 1. ๋ณ€์ˆ˜์— ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒฝ์šฐ const square = function(num){ // ๋ณ€์ˆ˜ square์— ํ•จ์ˆ˜ ํ• ๋‹น return num * num } let output = square(5) // ํ•จ์ˆ˜๊ฐ€ ํ• ๋‹น๋œ ๋ณ€์ˆ˜ square๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ console.log(output) // 25 ๊ณ ์ฐจ ํ•จ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜: ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜, ์–ด๋–ค ์ž‘์—…์ด ์™„๋ฃŒ๋์„ ๋•Œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๋‹ต์‹  ์ „ํ™”๋ฅผ ๋œปํ•˜๋Š”..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:23
[JavaScript] DOM

DOM(Document Object Model)์ด๋ž€? HTML ์š”์†Œ๋ฅผ Object์ฒ˜๋Ÿผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” Model HTML์˜ ์•„์ฃผ ์ž‘์€ ๋ถ€๋ถ„๊นŒ์ง€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ DOM์ด๋ผ๊ณ  ํ•œ๋‹ค. DOM์„ ์ด์šฉํ•˜๋ฉด HTML๋กœ ๊ตฌ์„ฑ๋œ ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ์›€์ง์ด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. document ๊ฐ์ฒด์— ๊ตฌํ˜„๋ผ ์žˆ๋‹ค. DOM์€ 'ํŠธ๋ฆฌ ๊ตฌ์กฐ'๋‹ค! (๋ถ€๋ชจ๊ฐ€ ์ž์‹์„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€์ง€๊ณ , ๋ถ€๋ชจ๊ฐ€ ํ•˜๋‚˜์ธ ๊ตฌ์กฐ๊ฐ€ ๋ฐ˜๋ณต) HTML์— JavaScript๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• - HTML ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜๋Š” index.js๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์š”์†Œ๋ฅผ ๋งŒ๋‚˜๋ฉด HTML ํ•ด์„์„ ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  ์š”์†Œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•œ๋‹ค! ๋“ฑ์žฅ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค๋Š” ์ ! ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์š”์†Œ์— ์ถ”๊ฐ€ ๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— ์ถ”๊ฐ€ D..

๐Ÿ’ป Development/JavaScript 2022. 11. 25. 01:22