๐๊ณต๋ถ/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. ์ด์ 1 2 3 4 ๋ค์