Language/JavaScript28 [JavaScript] AJAX & JSON AJAX Asynchronous JavaScript And XML (๋น๋๊ธฐ์ JavaScript์ XML) ์๋ฒ์ ํต์ ํ๊ธฐ ์ํด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ํ์ฉ JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ํ ์คํธ ํ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ํฌ๋งท์ ์ฃผ๊ณ ๋ฐ์ ์ ์์ [์ฐธ๊ณ ] AJAX์ X๊ฐ XML์ ์๋ฏธํ๊ธด ํ์ง๋ง, ์์ฆ์ ๋ ๊ฐ๋ฒผ์ด ์ฉ๋๊ณผ JavaScript์ ์ผ๋ถ๋ผ ๋ ์ฅ์ ๋๋ฌธ์ JSON์ ๋ ๋ง์ด ์ฌ์ฉํจ |ํน์ง ํ์ด์ง ์ ์ฒด๋ฅผ reload(์๋ก ๊ณ ์นจ)๋ฅผ ํ์ง ์๊ณ ์๋ ์ํ๋๋ “๋น๋๊ธฐ์ฑ” ์๋ฒ์ ์๋ต์ ๋ฐ๋ผ ์ ์ฒด ํ์ด์ง๊ฐ ์๋ ์ผ๋ถ๋ถ๋ง์ ์ ๋ฐ์ดํธ ํ ์ ์์ AJAX์ ์ฃผ์ ๋๊ฐ์ง ํน์ง์ ์๋์ ์์ ์ ํ ์ ์๊ฒ ํด์ค ํ์ด์ง ์๋ก ๊ณ ์นจ ์์ด ์๋ฒ์ ์์ฒญ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์์ ์ ์ํ |X.. 2023. 1. 15. [FE/JavaScript] ๊ตฌ์กฐ ๋ถํด ํ ๋น(๋์คํธ๋ญ์ฒ๋ง ํ ๋น) ๊ตฌ์กฐ ๋ถํด ํ ๋น ๐ก ๊ตฌ์กฐ ๋ถํด ํ ๋น์ด ๋ญ๊ฐ์? ๐ก๊ตฌ์กฐ ๋ถํด ํ ๋น์ ํฌ๊ฒ ์ด๋ค ์ข ๋ฅ๊ฐ ์๋์? Q.๊ตฌ์กฐ ๋ถํด ํ ๋น (๋์คํธ๋ญ์ฒ๋ง ํ ๋น) ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์ฑ์ ํด์ฒดํ์ฌ ๊ทธ ๊ฐ์ ๊ฐ๋ณ ๋ณ์์ ๋ด์ ์ ์๊ฒ ํ๋ JavaScript ํํ์ - MDN ๊ตฌ์กฐํ๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธ ๋๋ ๊ฐ์ฒด๋ฅผ destructuring(๋น๊ตฌ์กฐํ, ๊ตฌ์กฐ ํ๊ดด)ํ์ฌ 1๊ฐ ์ด์์ ๋ณ์์ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋นํ๋ ๊ฒ ๐ง iterable? ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(iterable object) ํน์ ์ค์ฌ์ iterable ๋ด์ฅ๋ ์์ฑ์ ์ค iterable ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ์์ฑ์ String Array TypedArray Map Set Q.๊ตฌ์กฐ ๋ถํด ํ ๋น ์ ์ฐ์ด์ฃ ? ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธ ๋๋ ๊ฐ์ฒด ์ดํฐ๋ด์์ ํ์ํ ๊ฐ๋ง ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋น ์ ์ .. 2022. 7. 6. [FE/JavaScript] strict mode ๐ก strict mode๊ฐ ๋ญ๊ฐ์? ๐กstrict mode๋ฅผ ํตํด ๋ฌด์์ ์๋ฐฉํ ์ ์์ฃ ? ๐strict mode๋? ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข ๋ ์๊ฒฉํ ์ ์ฉํ์ฌ ์ต์ ํ ์์ ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ๊ฒ ES5(ECMA Script 5)์ ์ถ๊ฐ๋ ํค์๋ ๐ strict mode๋ฅผ ํตํด ๋ฌด์์ ์๋ฐฉํ ์ ์๋์? use strict๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋์น ์์ ์ฌ๋ฌ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ๋ง์์ฃผ๋๋ฐ ๋ง์ ๋์์ ์ค๋ค. ์๋ชป ์ฌ์ฉํ๋ฉด ์๋ ์ค๋ฅ๋ฅผ ์๋ก ๋ง๋ค์ด๋ด๋ ๊ฒฝ์ฐ๋ ์๋ค. ๋ฐ๋๋ก ๊ณต์์ฉ์ด๋ ์๋์ง๋ง, ๊ฐ๋ ์๊ฒฉํ์ง ์์ ๊ธฐ๋ณธ ๊ฐ์ sloppy mode(๋์จํ ๋ชจ๋) ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. sloppy mode์ ์์ ์คํ ๊ฒฐ๊ณผ๋ ์ด๋จ๊น? function foo(){ x.. 2022. 6. 27. [FE/JavaScript]this like this yo like this Q.this๊ฐ ๋ญ๊ฐ์? this๋ ์๊ธฐ์ฐธ์กฐ๋ณ์ ์์ ์ด ์ํ ๊ฐ์ฒด๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์(self-referencing variable) ๐ฒq**.์ ์ฌ์ฉํ๋๋ฐ?** ๋์์ ๋ํ๋ด๋ ๋ฉ์๋๋ ์์ ์ด ์ํ ๊ฐ์ฒด์ ์ํ(ํ๋กํผํฐ)๋ฅผ ์ฐธ์กฐํ๊ณ ๋ณ๊ฒฝํ ์ ์์ด์ผ ํ๋ค. ์ด๋ ๋ฉ์๋๊ฐ ์์ ์ด ์ํ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๋ ค๋ฉด ๋จผ์ ์์ ์ด ์ํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ! +)this์ ํน์ง this๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์๋ฌต์ ์ผ๋ก ์์ฑ๋๋ฉฐ, ์ฝ๋ ์ด๋์๋ ์ฐธ์กฐ ๊ฐ๋ฅ! ํจ์๋ฅผ ํธ์ถํ๋ฉด arguments ๊ฐ์ฒด์ this๊ฐ ์๋ฌต์ ์ผ๋ก ํจ์ ๋ด๋ถ์ ์ ๋ฌ this๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ, ์ฆ this binding์ ํจ์ ํธ์ถ ๋ฐฉ์.. 2022. 6. 23. [FE/JavaScript] ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ Q.์์ฑ์ ํจ์๊ฐ ๋ญ๊ฐ์? A. ์์ฑ์(constructor)ํจ์๋ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ์ฌ ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ์์ฑํ๋ ํจ์! ์์ฑ์ ํจ์์ ์ํด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ **์ธ์คํด์ค(instance)**๋ผ๊ณ ํจ. Q.๊ฐ์ฒด ๋ฆฌํฐ๋ด๋ก ๋ง๋ค ๋์๋ ๋ฌด์จ ์ฐจ์ด๊ฐ ์์ฃ ? ์ ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ๋์? โถ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์์ ๋ฌธ์ ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฐฉ์์ผ๋ก ์์ฑ๋ ๊ฐ์ฒด๋ ๊ฐ์ ํํ์ ๊ฐ์ฒด๋ฅผ ์ฌ์์ฑ ๋ถ๊ฐ! ๋์ผํ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํด์ผ ํ ๊ฒฝ์ฐ ๋งค๋ฒ ๊ฐ์ ํ๋กํผํฐ๋ฅผ ๊ธฐ์ ํด์ผํจ(๋นํจ์จ์ ) โถ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์ ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์์ ๋ง์น ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ ํ๋ฆฟ(ํด๋์ค)์ฒ๋ผ ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํด ํ๋กํผํฐ ๊ตฌ์กฐ๊ฐ ๋.. 2022. 6. 13. JavaScript - Event *๏ธโฃ Event |Event (์ด๋ฒคํธ) ๊ฐ๋ ๋คํธ์ํฌ ํ๋์ด๋ ์ฌ์ฉ์์์ ์ํธ์์ฉ ๊ฐ์ ์ฌ๊ฑด์ ๋ฐ์์ ์๋ฆฌ๊ธฐ ์ํ ๊ฐ์ฒด ์ด๋ฒคํธ ๋ฐ์ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ํค๋ณด๋๋ฅผ ๋๋ฅด๋ ๋ฑ ์ฌ์ฉ์ ํ๋์ผ๋ก ๋ฐ์ํ ์๋ ์์ ํน์ ๋ฉ์๋๋ฅผ ํธ์ถ(Element.click())ํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก๋ ๋ง๋ค์ด๋ผ ์ ์์ |Event ๊ธฐ๋ฐ ์ธํฐํ์ด์ค AnimationEvent, ClipboardEvent, DragEvent ๋ฑ UIEvent ๊ฐ๋จํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ด๋ฒคํธ Event์ ์์์ ๋ฐ์ MouseEvent, KeyboardEvent, InputEvent, FocusEvent ๋ฑ์ ๋ถ๋ชจ ๊ฐ์ฒด ์ญํ ์ ํจ |Event์ ์ญํ “~ํ๋ฉด ~ํ๋ค.” “ํด๋ฆญํ๋ฉด, ๊ฒฝ๊ณ ์ฐฝ์ ๋์ด๋ค.” “ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, ํ ์ผ์ ๋ฑ๋กํ๋ค.” .. 2022. 5. 3. JavaScript - DOM(Document Object Model) |DOM ์กฐ์ - ๊ฐ๋ Document๋ ๋ฌธ์ ํ์ฅ(HTML)์ ํด๋นํ๊ณ ์ด๋ฅผ ์กฐ์ DOM ์กฐ์ ์์ ์ ํ(Select) ๋ณ๊ฒฝ(Mainpulation) |DOM ๊ด๋ จ ๊ฐ์ฒด์ ์์ ๊ตฌ์กฐ Event Target Event Listner๋ฅผ ๊ฐ์ง ์ ์๋ ๊ฐ์ฒด๊ฐ ๊ตฌํํ๋ DOM ์ธํฐํ์ด์ค Node ์ฌ๋ฌ ๊ฐ์ง DOM ํ์ ๋ค์ด ์์ํ๋ ์ธํฐํ์ด์ค Element Document ์์ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์์ํ๋ ๊ฐ์ฅ ๋ฒ์ฉ์ ์ธ ์ธํฐํ์ด์ค ๋ถ๋ชจ์ธ Node์ ๊ทธ ๋ถ๋ชจ์ธ EventTarget์ ์์ฑ์ ์์ Document ๋ธ๋ผ์ฐ์ ๊ฐ ๋ถ๋ฌ์จ ์น ํ์ด์ง๋ฅผ ๋ํ๋ DOM ํธ๋ฆฌ์ ์ง์ ์ (entry point) ์ญํ ์ ์ํ HTMLElement ๋ชจ๋ ์ข ๋ฅ์ HTML ์์ ๋ถ๋ชจ element์ ์์ฑ ์์ |DOM ์ ํ – ์ ํ ๊ด๋ จ ๋ฉ์๋ .. 2022. 5. 3. JavaScript - Asynchronous JavaScript(์ฝ๋ฐฑํจ์, Async callbacks,Promise), Axios *๏ธโฃ Callback Function - ์ธ์๋ก ๋๊ธฐ๋ ํจ์ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋ ํจ์ ์ธ๋ถ ํจ์ ๋ด์์ ํธ์ถ๋์ด ์ผ์ข ์ ๋ฃจํด ๋๋ ์์ ์ ์๋ฃํจ ๋๊ธฐ์, ๋น๋๊ธฐ์ ๋ชจ๋ ์ฌ์ฉ๋จ ๊ทธ๋ฌ๋ ๋น๋๊ธฐ ์์ ์ด ์๋ฃ๋ ํ ์ฝ๋ ์คํ์ ๊ณ์ํ๋ ๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋จ ๋น๋๊ธฐ ์์ ์ด ์๋ฃ๋ ํ ์ฝ๋ ์คํ์ ๊ณ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋น๋๊ธฐ ์ฝ๋ฐฑ(asynchronous callback)์ด๋ผ๊ณ ํจ |JavaScript์ ํจ์ === “์ผ๊ธ ๊ฐ์ฒด(First Class Object)” ์ผ๊ธ ๊ฐ์ฒด (์ผ๊ธ ํจ์) ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ ์ฉํ ์ ์๋ ์ฐ์ฐ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ์ฒด(ํจ์) ์ผ๊ธ ๊ฐ์ฒด์ ์กฐ๊ฑด ์ธ์๋ก ๋๊ธธ ์ ์์ด์ผ ํจ ํจ์์ ๋ฐํ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ด์ผ ํจ ๋ณ์์ ํ ๋นํ ์ ์์ด์ผ ํจ |Async callbacks ํจ์ ⇒ .. 2022. 5. 3. JavaScript - AJAX, Asynchronous (๋น๋๊ธฐ) *๏ธโฃAJAX Asynchronous JavaScript And XML (๋น๋๊ธฐ์ JavaScript์ XML) ์๋ฒ์ ํต์ ํ๊ธฐ ์ํด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ํ์ฉ JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ํ ์คํธ ํ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ํฌ๋งท์ ์ฃผ๊ณ ๋ฐ์ ์ ์์ [์ฐธ๊ณ ] AJAX์ X๊ฐ XML์ ์๋ฏธํ๊ธด ํ์ง๋ง, ์์ฆ์ ๋ ๊ฐ๋ฒผ์ด ์ฉ๋๊ณผ JavaScript์ ์ผ๋ถ๋ผ ๋ ์ฅ์ ๋๋ฌธ์ JSON์ ๋ ๋ง์ด ์ฌ์ฉํจ |ํน์ง ํ์ด์ง ์ ์ฒด๋ฅผ reload(์๋ก ๊ณ ์นจ)๋ฅผ ํ์ง ์๊ณ ์๋ ์ํ๋๋ “๋น๋๊ธฐ์ฑ” ์๋ฒ์ ์๋ต์ ๋ฐ๋ผ ์ ์ฒด ํ์ด์ง๊ฐ ์๋ ์ผ๋ถ๋ถ๋ง์ ์ ๋ฐ์ดํธ ํ ์ ์์ AJAX์ ์ฃผ์ ๋๊ฐ์ง ํน์ง์ ์๋์ ์์ ์ ํ ์ ์๊ฒ ํด์ค ํ์ด์ง ์๋ก ๊ณ ์นจ ์์ด ์๋ฒ์ ์์ฒญ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์์ ์ ์ํ.. 2022. 5. 3. JavaScript - ํ๋กํ ํ์ (prototype), ํด๋์ค(class) ๐คํ๋กํ ํ์ (prototype) |JS์ ์์๊ณผ ๊ฐ์ฒด JS๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด JS์ ๊ฐ์ฒด๋ key-value ๊ตฌ์กฐ์ ์๋ฃ๊ตฌ์กฐ Python๊ณผ ๊ฐ์ ํด๋์ค๊ธฐ๋ฐ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ์ฒด์ ๋ค๋ฆ JS๋ ํด๋์ค๊ฐ๋ ์ด ์กด์ฌํ์ง ์๊ณ , ํ๋กํ ํ์ ์ด๋ผ๋ ๊ฐ๋ ์ ํ์ฉํด ์์์ ๊ตฌํ ES5 ๊น์ง๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ํ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ์์ผ๋, ES6+ ๋ถํฐ๋ class ํค์๋๋ก ๋์ฒด function Rectangle(width, height) { this.width = width this.height = height } Rectangle.prototype.getArea = function () { return this.width * this.height } function Square(length) { R.. 2022. 5. 3. ์ด์ 1 2 3 ๋ค์