javascript
[JavaScript] var๋ฅผ ์ง์ํด์ผํ๋ ์ด์
์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ var ๋์ let์ด๋ const๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ผ. ์ฐ์ , var์ ๋์ผํ ๋ณ์ ์ด๋ฆ์ผ๋ก ๋ค๋ฅธ ๊ฐ์ ๋ด์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ์ด ๋, ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ์ธ๋ name์ด ๋์ค๊ฒ ๋๋ค. ํธํ๋ค๊ณ ์๊ฐํ ์๋ ์์ง๋ง, ์ฌ์ค ๊ต์ฅํ ์ํํ ๊ธฐ๋ฅ์ด๋ค. ๊ฐ๋ฐ ์ค ์ฝ๋ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๋ค๋ณด๋ฉด ๋ด๊ฐ ์ ์ธํด์ค ๋ณ์ ์ด๋ฆ์ด ๊ธฐ์ต์ด ๋์ง ์์ ์๋ ์๋๋ฐ, ์ด ๊ณผ์ ์์ ๊ฐ์ด ๋ฐ๋์ด๋ฒ๋ฆฐ๋ค๋ฉด.. ๊ทธ ๋ ์ด์ ์ธ๋ฉด์ ๋ฆ๊ฒ ์๋๊ฑฐ์ var name = "Jedi"; var name = "Yujin"; ๋ฐ๋ฉด, let์ var๊ณผ ๋ค๋ฅด๊ฒ ์ ์ธํ๋ ๋ณ์๋ฅผ ์ฌ์ ์ธํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๊น ์ธ๊ธํ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. let name = "Jedi"; let name = "Yujin"; // Err..
[JavaScript] async & await | ๋น๋๊ธฐ ์ฒ๋ฆฌ
async & await ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด์ผ๋ก, ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ธ ์ฝ๋ฐฑ ํจ์์ Promise์ ๋จ์ ์ ๋ณด์ํ๋ ํค์๋๋ผ๊ณ ํ๋ค. (์์ง Promise๋ ์ ๋ชจ๋ฅด๋๋ฐ..^^) async function ํจ์๋ช (){ await ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฉ์๋๋ช (); } async async ํค์๋๋ฅผ ๋ถ์ฌ์ค ํจ์์ return ๊ฐ์ ๋น๋๊ธฐ ๊ฐ์ฒด์ธ Promise์ resolve ๊ฐ์ด ๋๋ค. ์ฆ, Promise์ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ์ ์ป๋๋ค. async function helloAsync(){ return new Promise(function(resolve, reject){ var s = "Hello, Async!"; resolve(s) }); } async function logSentence(){ var s..
[JavaScript] Promise | ์ฝ๋ฐฑ์ง์ฅ์ ํ์ถํ๋ ๋ฐฉ๋ฒ
๋๊ธฐ & ๋น๋๊ธฐ ๊ธ์์ ๋ฑ์ฅํ ์ฝ๋ฐฑ ์ง์ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ Promise ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. Promise๋? : ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ๋ฅผ ๋๋ ๊ฐ์ฒด์ด๋ค. ์ฝ๋ฐฑ์ ์ค์ง์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํด์ค๋ค. ์ฐ์ , ๋น๋๊ธฐ์์ ์ด ๊ฐ์ง ์ ์๋ ์ํ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๋๊ธฐ(Pending): ๋น๋๊ธฐ ์ํ๊ฐ ์์ ์ค์ด๊ฑฐ๋ ์์ํ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ดํ(Fulfilled): ๋น๋๊ธฐ ์ํ๊ฐ ์ ์์ ์ผ๋ก ์งํ๋ ์ํ ๊ฑฐ๋ถ(Rejected): ๋ฒ๊ทธ, ๋๋ ์คํจํ ์ํ๋ก ๋น๋๊ธฐ ์์ ์ด ์ ์์ ์ผ๋ก ์งํ๋์ง ์์ ์ํ resolve: ๋๊ธฐ => ์ดํ reject: ๋๊ธฐ => ๊ฑฐ๋ถ function isPositiveP(number) { const executor = (resolve, reject) => { setTimeo..
[JavaScript] ๋๊ธฐ & ๋น๋๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝ๋๊ฐ ์์ฑ๋ ์์๋๋ก ์์ ์ ์ฒ๋ฆฌํ๋ฉฐ, ์ด์ ์์ ์ด ์งํ ์ค์ผ ๋๋ ๋ค์ ์์ ์ ์ํํ์ง ์๊ณ ๊ธฐ๋ค๋ฆฐ๋ค. ์ด๋ฐ Task ์ฒ๋ฆฌ ๋ฐฉ์์ ๋๊ธฐ ๋ฐฉ์์ ์ฒ๋ฆฌ๋ผ๊ณ ํ๋ค. function TaskA() { console.log("TASK A"); } function TaskB() { console.log("TASK B"); } function TaskC() { console.log("TASK C"); } TaskA(); TaskB(); TaskC(); ๋๊ธฐ์ ์ฒ๋ฆฌ์ ๋จ์ ์ ํ๋์ ์์ ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ฉด ๋ชจ๋ ์์ ์ด ํด๋น ์์ ์ด ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง STOP ๋๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ฆ์ด ์ง์ฒด๋๋ค. ์ฆ, ์ฑ๋ฅ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ค๋ฅธ ์ธ์ด(C, C++ ... )์์๋ ๋ฉํฐ์ค๋ ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์๋ ์์ง๋ง..
[JavaScript] spread | ์ ๊ฐ ์ฐ์ฐ์
์คํ๋ ๋ ์ฐ์ฐ์('...')๋ ์ฐ๊ฒฐ, ๋ณต์ฌ ๋ฑ์ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ํ ์ค๋ก ํผ์น๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. ๋ฐฐ์ด์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค. const coffee = ["์๋ฉ๋ฆฌ์นด๋ ธ", "๋ฐ๋๋ผ๋ผ๋ผ"]; const juice = ["ํฌ๋์ฃผ์ค", "์ค๋ ์ง์ฃผ์ค", "ํ ๋งํ ์ฃผ์ค"]; const menu = [...coffee, "์๋ก์ด ์๋ฃ", ...juice]; console.log(menu); // ["์๋ฉ๋ฆฌ์นด๋ ธ", "๋ฐ๋๋ผ๋ผ๋ผ", "์๋ก์ด ์๋ฃ", "ํฌ๋์ฃผ์ค", "์ค๋ ์ง์ฃผ์ค", "ํ ๋งํ ์ฃผ์ค"] ์๋นํ ์ง๊ด์ ์ธ ์์๋ผ๊ณ ์๊ฐํ๋ค ^-^! ๊ฐ์ฒด์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค. const latte = { base: "milk", from: "Starbucks" }; const bani..
[JavaScript] ๋น๊ตฌ์กฐํ ํ ๋น ๊ทธ๋ฆฌ๊ณ SWAP
๋ฐฐ์ด์ ๋น๊ตฌ์กฐํ ํ ๋น ๋ฐฐ์ด์์ ๋น๊ตฌ์กฐํ ํ ๋น์ ์ฌ์ฉํ๋ค๋ฉด, ๋ฐฐ์ด ์์ ์๋ ๊ฐ์ ์ถ์ถํด์ ๋ณ์ / ์์๋ก ๋ฐ๋ก ์ ์ธ์ด ๊ฐ๋ฅํ๋ค. ๋ฐฐ์ด ์์ ์๋ ์์๋ฅผ ์๋ก ์ ์ธํด์ฃผ๊ณ ์ถ์ ๋ ๊ต์ฅํ ์ ์ฉํ ๋ฌธ๋ฒ์ด๋ค. # Case 1: ๊ธฐ์กด ํ ๋น ๋ฐฉ๋ฒ let colors = ["red", "green", "blue"]; let color0 = colors[0]; let color1 = colors[1]; let color2 = colors[2]; console.log(color0, color1, color2); // red green blue # Case 2: ๋น๊ตฌ์กฐํ ํ ๋น let [color1, color2, color3] = ["red", "green", "blue"]; console.log(color0, color..
[JavaScript] Truthy & Falsy
Truthy: ์ฐธ์ด ์๋๋ผ ์ฐธ๊ฐ์ ๊ฐ Falsy: ๊ฑฐ์ง์ด ์๋๋ผ ๊ฑฐ์ง๊ฐ์ ๊ฐ ์ด๊ฒ ๋ฌด์จ ์๋ฆฌ์ธ๊ฐ ์์๋ฅผ ๋ณด์ Truthy ex: {} ๋น ๊ฐ์ฒด [] ๋น ๋ฐฐ์ด 0์ ์ ์ธ ํ ์ซ์๊ฐ ๋น ๋ฌธ์์ด์ ์ ์ธํ ๋ฌธ์์ด Falsy ex: null defined 0 ๋น ๋ฌธ์์ด NaN ์์๋ฅผ ๋ณด๋๊น ๊ฐ์ด ์จ๋ค. ํ์ด์ฌ์์๋ ๋น ๋ฐฐ์ด์ธ์ง ํ์ธํ ๋ # python arr = [] if not arr: print("๋น ๋ฐฐ์ด์ ๋๋ค.") else: print("๋น ๋ฐฐ์ด์ด ์๋๋๋ค.") ์ ์์์ฒ๋ผ arr๋ฅผ true/false๋ก ๋ฐํํ์ฌ ํ๋จํ๋๋ฐ, ์ด๋ฐ ๊ฑธ truthy/falsy๋ผ๊ณ ํ๋ ๊ฒ ๊ฐ๋ค. ์์ Python ์์๋ฅผ JavaScript๋ก ๋ฐ๊ฟ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. # JavaScript const arr = [] if (!a..
[JavaScript] ๋ฐฐ์ด ๋ด์ฅ ํจ์
forEach ๋ฐฐ์ด์ ์์๋ค์ ๋ฐ๋ณตํ์ฌ ์์ ์ ์ํํ ์ ์๋ค. forEach ๊ตฌ๋ฌธ์ ์ธ์๋ก ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฑ๋กํ ์ ์์ผ๋ฉฐ, ๋ฐฐ์ด์ ์์๋ฅผ ์ํํ ๋ ํด๋น ์ฝ๋ฐฑ ํจ์๊ฐ ํธ์ถ๋๋ค. ์ด๋, ๋ฐฐ์ด ์์์ ์ธ๋ฑ์ค์ ๊ฐ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. const arr = [1, 2, 3, 4, 5]; arr.forEach((elm) => console.log(elm * 2)); arr.forEach(function(item, index){ console.log(item, index); }); // item: ๋ฐฐ์ด ๊ฐ๊ฐ์ ์์ดํ & index: ๋ฐฐ์ด ์์ดํ ์ index map ์๋ณธ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๋ฉฐ ์ฐ์ฐ์ ํ ํ, return ๊ฐ์ผ๋ก ํด๋น ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ฌ ์ ์๋ค. const arr = [1, 2, 3, 4, ..