๐จ JavaScript/๊ฐ๋
[์ ๋ก์ด] Promise์ ๋๊ธฐ/๋น๋๊ธฐ ๊ด๋ จ ์งค๋ง ํค์๋์ ๋ฆฌ
https://sunshineyellow.tistory.com/64 ์๋ ๊ฐ์ด ๋ณผ๋งํ ๋๋ฆผ์ฝ๋ฉ ์ฝ๋ฐฑ์ง์ฅ ํ์ถ Promise ๊ธฐ์ด ๊ฒ์๊ธ. ์ ๋ก์ด ์ธ๊ฐJS์์ง ๋ณด๋ค๊ฐ ์ถ๊ฐ์ ์ธ ํค์๋ ๋ฌธ์ฅ ์ ๋ฆฌ๊ฐ ํ์ํด ์์ฑํ๋ค. Promise๋? ์คํ์ ๋๋๋ฐ!!! ๊ฒฐ๊ณผ๊ฐ์ ๋์ค์ ์ธ ์ ์๋ค. "์คํ์ ๋๋๋ฐ"๊ฐ ์ค์. ๊ทธ๋์ new Promise ์์ ์ต๋ช ํจ์๋ ๋๊ธฐ์ ์ผ๋ก ์คํ์ด ๋๋ค. ๋๊ธฐ๋น๋๊ธฐ ์คํ์์ ๊ด๋ จํด์ ์๋ ์ฝ๋๊ฐ ์ค์ํ๋ค. ๊ธฐ์ตํด ๋์. let a = 2; const p = new Promise((resolve, reject) => { console.log('์คํ1'); setTimeout(() => { a = 5; console.log('์คํ3', a); resolve(a); }, 0); }); // ..
[์ฝ๋ฉ์ ํ] Local Storage ์ฌ์ฉ๋ฒ (Session Storage, IndexedDB, Cookies, Cache Storage)
๋ธ๋ผ์ฐ์ ์์ ์ ์ ๋ชฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. F12 ๊ฐ๋ฐ์ ๋๊ตฌ์์ Application(์ ํ๋ฆฌ์ผ์ด์ ) > Storage(์ ์ฅ์ฉ๋) ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ณด์. 1. Local Storage key : value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. 5MB ์ดํ์ ๋ฌธ์/์ซ์ ๋ฐ์ดํฐ๋ง ์ ์ฅํ ์ ์๋ค. (array, object ์ ์ฅ ๋ถ๊ฐ๋ฅ) ์ฌ์ดํธ๋ฅผ ์ฌ์ ์ํด๋ ์ ์ง๋๋ค. 2. Session Storage key : value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. 5MB ์ดํ์ ๋ฌธ์/์ซ์ ๋ฐ์ดํฐ๋ง ์ ์ฅํ ์ ์๋ค. (array, object ์ ์ฅ ๋ถ๊ฐ๋ฅ) ์ฌ์ดํธ๋ฅผ ๋๊ฐ๋ฉด ์ญ์ ๋๋ค. 3. IndexedDB ๊ตฌ์กฐํ๋ ๋์ฉ๋๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. 3. Cookies ์ ์ ์ ์ธ์ฆ์ ๋ณด(๋ก๊ทธ์ธ์ ๋ณด ๋ฑ)๋ฅผ ์ ์ฅํ๋ค. 4. Cache..
[์ฝ๋ฉ์ ํ] ajax๋ก ์๋ฒ์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ (1)
์๋ฒ์ ์์ฒญํ๋ ๋ฒ ์ด๋ค ๋ฐ์ดํฐ์ธ์ง url์ ์ ๋๋ก ์์ฑํ๋ค (ํ๋ฆฐ url๋ก ์์ฒญ์ 404error๊ฐ ๋ฌ๋ค) ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์์ฒญํ ์ง ๊ฒฐ์ ํ๋ค (GET/POST .. PUT, DELETE ๋ฑ) GET GET ์์ฒญ์ ์๋ฒ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ถ์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ url์ ์ ์ผ๋ฉด ๊ทธ๊ณณ์ผ๋ก GET ์์ฒญ์ ๋ ๋ฆฐ๋ค. POST POST ์์ฒญ์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. POST ์์ฒญ์ ๋ ๋ฆฌ๊ณ ์ถ์ผ๋ฉด form ํ๊ทธ + method="post" + action="url"์ ์ด์ฉํ๋ฉด ๋๋ค. GET๊ณผ POST๋ ์์ฒญํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก๊ณ ์นจ๋๋ค. AJAX ์๋ฒ์ GET, POST ์์ฒญ์ ํ ๋ ์๋ก๊ณ ์นจ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ๋์์ฃผ๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ด๋ค. (ex. ๋๊ธ์ ์..
[mdn, ์ฝ๋ฉ์ ํ ๋ฑ] for, forEach, for in
for ์ผ๋ฐ์ ์ผ๋ก ์ง์ ๋ ํ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ๋ณต์ ์ํํด์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค. forEach forEach๋ฌธ์ ๋ฐฐ์ด์ ์ํํ ๋ ์ฌ์ฉํ๋ค. forEach๋ฌธ์ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ํจ์๋ฅผ ์คํํ๋ค. forEach๋ฌธ์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ element๋ฅผ ๊ธฐ์ค์ผ๋ก index๋ฅผ ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ index๋ก array์ ์ ๊ทผํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค. ๋ํ break, continue ๋ฑ์ ์ ์ด๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. ํ์ดํํจ์ ๋ฒ์ /์ผ๋ฐ๋ฒ์ ํ์ดํํจ์๋ฅผ ์ฐ๋ฉด ํจ์ ๋ด์ this๊ฐ์ ๋ฐ๊นฅ์์ ๊ฐ์ ธ์ ์ฐ๊ธฐ ๋๋ฌธ์ ์ฃผ์. const array = ['a', 'b', 'c']; array.forEach(element => console.log(element)); co..
[์ฝ๋ฉ์ ํ,mdn] js๋ก html ์์ฑํ๋ ๋ฒ (appendChild, createElement, insertAdjacentHTML ๋ฑ)
1. document.createElement() / appendChild() / clondeNode() / importNode() document.createElement() : html ์๋ฃ๋ฅผ ์์ฑํ๋ค. element.appendChild() : ํ ๋ ธ๋๋ฅผ ํน์ ๋ถ๋ชจ ๋ ธ๋์ ์์ ๋ ธ๋ ๋ฆฌ์คํธ ์ค ๋ง์ง๋ง ์์์ผ๋ก ๋ถ์ธ๋ค. (ํ ๋ ธ๋๋ ๋ฌธ์์์ ๋ ์ง์ ์ ๋์์ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ๋ ธ๋๊ฐ ์ด๋ฏธ ๋ถ๋ชจ๊ฐ ์๋ค๋ฉด ์ญ์ ๋๊ณ ์๋ก์ด ์์น๋ก ์ด๋ํ๋ค.) * append()์์ ์ฐจ์ด์ : append๋ jquery์์ ์ง์ํ๋ ๋ฉ์๋๋ก, ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ธ appendChild()์ ๋ค๋ฅด๋ค. ๋ํ append๋ .append(`๋ด์ฉ`) ์ฒ๋ผ ์์๋ฅผ ๋ฐ๋ก ๋๋ ค๋ฐ์ ์ ์๋ ๋ฐ๋ฉด, appendChild()๋ creat..
[์ฝ๋ฉ์ ํ] ์๋ฃํ : Array, Object (ํน์ง๊ณผ ์ฐจ์ด์ )
https://sunshineyellow.tistory.com/38 ์ด๊ฑฐ์ ์ด์ด์.. Array ์๋ฃํ let car = ['์๋ํ', 50000, 'white']; ์์๊ฐ๋ ์ด ์๋ค. -> ์ซ์์์ด๊ฐ๋๋ค์ ์ ๋ ฌ(sort)/x๋ฒ์๋ฃ๋ถํฐ x๋ฒ์๋ฃ๊น์ง ์๋ฅด๊ธฐ(slice)/x๋ฒ์๋ฃ ๋ฐ๊พธ๊ธฐ/๋งจ ๋ค, ๋งจ ์์ ์๋ฃ ๋ฃ๊ธฐ/์ํ๋ ์๋ฃ ๊ฒ์ํ๋ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ ํ์ฉ์ด ๊ฐ๋ฅํ๋ค. Object ์๋ฃํ let car2 = { name : '์๋ํ', price : 50000 }; ์ ๋ชฉ(key)๊ฐ ๋ค์ด๊ฐ๋ค. ์์๊ฐ๋ ์ด ์๋ค. (์์ ์ผ๋ค๊ณ ๋งจ์ฒ์ ๋ฐ์ดํฐ๊ฐ ๋๋ ๊ฒ ์๋) -> key๋ง ๊ธฐ์ตํ๋ฉด ์๋ฃ ๋ฝ์ ๋ array๋ณด๋ค ์ฝ๋ค. object์์ ์๋ฃ ๋ฝ๋ ๋ฒ ๋๊ฐ์ง console.log(car2['name']); //์๋ํ ..