๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’๊ณต๋ถ€/JS17

[JavaScript] JS์˜ ๋ฐ˜๋ณต๋ฌธ ๊ทธ๋™์•ˆ ๋ฐฐ์šด ๊ฒƒ๋“ค์ด ์žˆ์—ˆ๋‹ค... ๊ทธ๋ƒฅ for๋ฌธ์„ ์จ๋„ ๋˜๋Š” ์ƒํ™ฉ์— ๊ตณ์ด๊ตณ์ด map์„ ์‚ฌ์šฉํ•œ ๋‚˜๋Š” ๋ฐ”๋ณด๋‹ค ๊ทธ๋ž˜์„œ ์˜ˆ์ „์— ์ •๋ฆฌํ•ด๋‘” ๋ฐ˜๋ณต๋ฌธ์„ ๊ฐ€์ ธ์™”๋‹ค... ๐Ÿ˜Ž ๋‘์ค„ ์š”์•ฝ ๊ฐ์ฒด ์ˆœํšŒ ํ•  ๋•Œ → Object.keys, Object.values, Object.entries ๋ฐฐ์—ด ์ˆœํšŒ ํ•  ๋•Œ → forEach, map, filter, reduce ๋“ฑ๋“ฑ โœ” for for (let i = 0; i < 10; i++) { console.log(i); } ๋„ˆ๋„์•Œ๊ณ  ๋‚˜๋„์•Œ๊ณ  ๋ชจ๋‘๊ฐ€ ์•„๋Š” ๊ทธ for๋ฌธ โœ” for in const obj = { name: '๊น€์ ํ”„', age: '4' } for (const key in obj) { console.log(`${key} : ${obj[key]}`); } // name : ๊น€์ ํ”„ // .. 2021. 11. 21.
[JavaScript] ๋””๋ฐ”์šด์Šค(Debounce) vs ์Šค๋กœํ‹€(Throttle) โœ… ๊ณตํ†ต์  ์งง์€ ์‹œ๊ฐ„์— ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ทธ๋ฃนํ™”ํ•ด์„œ, ๊ณผ๋„ํ•œ ์ด๋ฒคํŠธ ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ ์—„์ฒญ๋‚˜๊ฒŒ ๋น ๋ฅธ์†๋„๋กœ ํด๋ฆญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•˜๊ธฐ ๊ฒ€์ƒ‰์ฐฝ์— ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅํ•˜๊ธฐ ์Šคํฌ๋กค๋ฐ”๋ฅผ ์œ„์•„๋ž˜๋กœ ์ญ‰์ญ‰ ์›€์ง์ด๊ธฐ ์ฐฝ์„ ๋ฆฌ์‚ฌ์ด์ง•ํ•˜๊ธฐ ๋“ฑ๋“ฑ... โœ… ๋””๋ฐ”์šด์Šค (Debounce) ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ผ์ •์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๊ฐ™์€ ์š”์ฒญ์ด ์ถ”๊ฐ€๋กœ ๋“ค์–ด์˜ค๋ฉด ์ด์ „ ์š”์ฒญ์€ ์ทจ์†Œ๋จ ์—ฐ์ด์–ด์„œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰(๋˜๋Š” ๊ฐ€์žฅ ์ฒ˜์Œ)๋งŒ ํ˜ธ์ถœ ๋˜๋„๋ก ํ•จ ์‰ผ์—†์ด ๊ณ„~~~์† ํด๋ฆญํ•˜๋ฉด ํด๋ฆญ์ด ๋ฉˆ์ถœ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ฉˆ์ถ”๋ฉด ์‹คํ–‰ํ•จ ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ ๋ฌดํ•œ ์ž…๋ ฅ์„ ํ•˜๋ฉด ๋ฌดํ•œ ๊ธฐ๋‹ค๋ฆผ์„ ํ•จ toggle ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ๋“ฑ์— ์ฃผ๋ฉด ์ข‹์Œ function debounce(callback, limit = 100) { let timeout return.. 2021. 10. 12.
[JavaScript] var๊ณผ ํ˜ธ์ด์ŠคํŒ… โœ… ํ˜ธ์ด์ŠคํŒ…์ด๋ž€? catName("ํด๋กœ์ด"); function catName(name) { console.log("์ œ ๊ณ ์–‘์ด์˜ ์ด๋ฆ„์€ " + name + "์ž…๋‹ˆ๋‹ค"); } /* ๊ฒฐ๊ณผ: "์ œ ๊ณ ์–‘์ด์˜ ์ด๋ฆ„์€ ํด๋กœ์ด์ž…๋‹ˆ๋‹ค" */ ํ•จ์ˆ˜ ์•ˆ์— ์žˆ๋Š” ์„ ์–ธ๋“ค์„ ๋ชจ๋‘ ๋Œ์–ด์˜ฌ๋ ค์„œ, ํ•ด๋‹น ํ•จ์ˆ˜ ์œ ํšจ ๋ฒ”์œ„์˜ ์ตœ์ƒ๋‹จ์— ์„ ์–ธํ•˜๋Š” ๊ฒƒ ํ•จ์ˆ˜ ์„ ์–ธ๋งŒ! ๋Œ์–ด์˜ฌ๋ ค์ง (ํ• ๋‹น์€โŒ) //๋ณ€์ˆ˜์˜ ํ˜ธ์ด์ŠคํŒ… ์˜ˆ์‹œ console.log(name); // undefined var name = "๊น€์ ํ”„"; //------------------------------- var name; // name๋ณ€์ˆ˜๊ฐ€ ํ˜ธ์ด์ŠคํŒ… ๋˜์–ด ์ƒ๋‹จ์œผ๋กœ ์ด๋™ console.log(name); name = "๊น€์ ํ”„"; //ํ•จ์ˆ˜์˜ ํ˜ธ์ด์ŠคํŒ… ์˜ˆ์‹œ foo(); foo2(); funct.. 2021. 10. 11.
[JavaScript] Callback vs Promise vs async-await promise๋Š” ์ด์ œ ์ง„์งœ ์•Œ ๋•Œ๋„ ๋˜์—ˆ๋‹ค. #๊ฐ€๋ณด์ž๊ณ ... โœ… Callback ์ฝœ๋ฐฑ ์ง€์˜ฅ = ์ฝœ๋ฐฑ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋ฉด ์ฝ๊ธฐ ํž˜๋“ค๊ณ , ์ดํ•ดํ•˜๊ธฐ๋„ ํž˜๋“ฌ ์—๋Ÿฌ์ฒ˜๋ฆฌํ•˜๊ธฐ๋„ ํž˜๋“ฌ ์œ ์ง€๋ณด์ˆ˜๋„ ํž˜๋“ฌ ๊ทธ๋ฆฌ๊ณ  ์‹คํŒจํ–ˆ๋Š”์ง€/์„ฑ๊ณตํ–ˆ๋Š”์ง€/๋Œ€๊ธฐ์ค‘์ธ์ง€ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Œ (์—๋Ÿฌ๊ฐ€ ๋‚˜์•ผ๋งŒ ์•„ ๋ญ”๊ฐ€ ์ž˜๋ชป๋๊ตฌ๋‚˜ ๋ผ๊ณ  ์•Œ์ˆ˜์žˆ์Œ๐Ÿ˜ฐ) → ๊ทธ๋ž˜์„œ promise๊ฐ€ ๋“ฑ์žฅ โœ… Promise promise๋Š” ๊ฐ์ฒด์ž„ new Promise()๋กœ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ข…๋ฃŒํ•  ๋•Œ ๊นŒ์ง€ ํ”„๋กœ๋ฏธ์Šค๋Š” 3๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง pending(๋Œ€๊ธฐ) : ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ ๋ฏธ์™„๋ฃŒ (์ƒ์„ฑ ์งํ›„ === ๊ธฐ๋ณธ์ƒํƒœ) fulfilled(์ดํ–‰) : ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์„ฑ๊ณต → resolve ํ˜ธ์ถœ rejected(์‹คํŒจ) : ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์‹คํŒจ → reject ํ˜ธ์ถœ Promise ํ›„์† ์ฒ˜๋ฆฌ ๋ฉ”์„œ๋“œ then : ์ธ.. 2021. 10. 10.
[JavaScript] ํ™”์‚ดํ‘œํ•จ์ˆ˜ vs ์ผ๋ฐ˜ํ•จ์ˆ˜ โœ… ์ผ๋ฐ˜ ํ•จ์ˆ˜ this๋Š” ๋งˆ์ง€๋ง‰์œผ๋กœ ์ž์‹ ์„ ํ’ˆ๊ณ ์žˆ๋Š” scope๋กœ ํ•ญ์ƒ ๋ณ€ํ•จ (โŒ์–ด๋””์„œ ์„ ์–ธํ–ˆ๋Š๋ƒโŒ โญ•์–ด๋””์„œ ํ˜ธ์ถœํ–ˆ๋Š๋ƒโญ•) const example = { name: "world", speak: function() { function getName() { return `${this.name}`; } return `Hello ${getName()}`; } }; example.speak(); // Hello //์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด.. const example = { name: "world", speak: function() { //์—ฌ๊ธฐ๊นŒ์ง€๋Š” this์— ๊ฐ์ฒด example์ด bind๋ผ์žˆ์Œ const self = this; // self๋ฅผ ์„ ์–ธํ•ด์„œ ๊ฒฐํ•ฉ์‹œํ‚ด function getName() { return `${se.. 2021. 10. 9.