๋ฐ์ํ ๐ JavaScript29 [JS Tam9์ํ] #3 ๊ฐ์ฒด์ ํ๋กํผํฐ ๐Object ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด(object) ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ฒด๋ mutable (๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ) ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ฏ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค. ๊ฐ์ฒด๋ property๋ก ๊ตฌ์ฑ๋๋ค JS์ ํจ์๋ ๊ฐ์ฒด๋ก ์ทจ๊ธ : ํจ์ = property ํ๋กํผํฐ : ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฐ(data) ๋ฉ์๋: ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์กฐ์ํ๋ ๋์ property๊ฐ์ด ํจ์์ธ ๊ฒฝ์ฐ ๊ฐ์ฒด์ ๋ฌถ์ฌ์๋ ํจ์ ex) increase : ๋ฉ์๋ num :ํ๋กํผํฐ var counter = { num : 0, increase : function(){ this.num++ } }; immutable ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ const ๋ณ์, Object.freeze ๊ฐ์ฒด mutable ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ ๊ฐ์ฒด,ํจ์,๋ฐฐ์ด,.. 2021. 7. 17. [JS Tam9์ํ] #2 FE ์ํ๊ด๋ฆฌ ํ๋ก ํธ์๋์ ์ํ๊ด๋ฆฌ ํ๋ก ํธ์๋๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ๋๋ผ๋ ๋ง์ฃผํ๋ ์ด๋ ค์ ์ค ํ๋๋ ์ํ state๊ด๋ฆฌ FE์ ์ํ๋ ์น ์์ ๋ค์ํ ์์๋ค์ด ๊ฐ์ง๊ณ ์๋ ๊ฐ์ ๋งํ๋ฉฐ ์ด ๊ฐ๋ค์ ์ฌ์ฉ์์ ์ ํ๊ณผ ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ณํํ๋ค. ์ด ์ํ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ์ ์ดํ๋๋์ ๋ฐ๋ผ ์ฝ๋์ ์ผ๊ด์ฑ์ด ๊ฒฐ์ ๋๋๋ฐ, ํ๋ก ํธ์๋์ ์ํ๊ด๋ฆฌ๋ ํ ๊ณณ์์ ํ๋ฉด ๊ฐ์ฅ ์ข๋ค. ๋ณดํต์ ์ต์์ component ๋ storage์ ๋ณด๊ดํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ค๊ณ๋ ? ๋ณดํต ์๋์ ๊ฐ์ด component๋ฅผ ๊ตฌ์ฑํ์ฌ ๋ถ๋ชจ๊ฐ state๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ํ ๋ณํ์ ๋ฐ๋ผ ์์ component๋ rendering๋ง ํด์ฃผ๋ ๊ตฌ์กฐ๋ก ์ค๊ณํ๋ ๊ฒ์ด ์ข๋ค. ๋ถ๋ชจ component : ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์์ ์์ component : ์ํ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ ex ) Tod.. 2021. 7. 16. [JS Tam9์ํ] #1 DOM DOM ( Document Object Model) : ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋๋ก ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ตฌ์กฐ ๋ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋ ์ธํฐํ์ด์ค. ์ฐธ๊ณ : https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction - HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ interface - ๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ์ ์ ๊ณต - ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ ์ ๊ณต DOM์ ์ฐพ๋ ๋ฐฉ๋ฒ ์๋ ๋ฉ์๋๋ฅผ ํตํด์ getElement getElements querySelector querySelectorAll getElement document.getElementsByTagName('div’) document.. 2021. 7. 16. [JavaScript] Closure ๊ณผ Currying Closure closure ์ ์ฅ์ ํ์ฉ ๊ฐ์ ๊ฐ์ง ํจ์๋ฅผ ๋ง๋ค ์ ์์ function sum(a,b) { return a+b; } function calculate(fn, prev) { return (v) =>{ return fn(prev,v); } const sum100 = calculate(sum, 100) sum100(20); //120 โ sum100 sum100 = (v) => { return sum(100,v) } sum100์ด๋ผ๋ ํจ์๋ ์ด๋ป๊ฒ ๋ณด๋ฉด 100์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง ํจ์๊ฐ ๋๋ ๊ฒ์ด๋ค. ํฌ๋กฌ ๋๋ฒ๊ฑฐ์์ Scope(์ ํจ๋ฒ์) ๋ฅผ ํ์ธํด๋ณด๋ฉด Closure : { prev :100, fn: f } Currying ๊ฐ์ ๊ฐ์ง ํจ์๋ฅผ ๋ง๋ค ์ ์๋ ํจ์ ex) calculate ํจ์ ํจ์.. 2021. 4. 9. javascript ๊ณผ Promise ์ async await ์๋ณธ ์ฝ๋ (callback ์ง์ฅ์ ๋น ์ง๋ ๋ง๋) url์ json ๋ฐ์ดํฐ์ json ์ค title ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ถ๋ ฅ์ํค๋ code 1์ด ํ json ์ถ๋ ฅ ๊ทธ๋ก๋ถํฐ 2์ด ํ json.title ์ถ๋ ฅ fetch('https://jsonplaceholder.typicode.com/todos/1') .then(response => response.json()) .then( (json)=> { setTimeout(() => { console.log(json); setTimeout( () => { console.log(json.title); },2000); },1000); }) ์ฝ๋ฐฑ ํจ์ ๋ถ๋ฆฌ์ then ์ฌ์ฉ Promise๋ฅผ ์ฌ์ฉํด๋ณด์ const delay = (data,ms) =>new Promise(.. 2021. 3. 15. [Javascript] Prototype ์ ํตํ ์์ ๊ณผ __proto__ +(MDN ์์ ๋ก ๋ณด๋ Prototype ์์) ์๋ฐ์คํฌ๋ฆฝํธ์์ class๋? ์์ฑ์ํจ์ ์์ฑ ํจ์ ํธ์ถ ๊ฐ์ฒด ์์ฑ ์ ๋ด๋ถ ๊ตฌํ ํฌ๋กฑ์ ์์ ๊ณผ ์ํ์ฝ๋ฉ js ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฐธ์กฐํ์ฌ MDN์ ์๋ Class Model ์์์์ -> Constructor function ๊ณผ prototype์ ์ด์ฉํ์ฌ ์์์ ๊ตฌํํด ๋ณด์๋ค. Class ๋ฅผ ์ด์ฉํ ์์ Javascript๋ ํ๋กํ ํ์ based ์ธ์ด ์๋๋ class ๊ฐ ์๊ธฐ ์ ์ ์์ฑ์ ํจ์๋ฅผ ์ด์ฉํ์ฌ ์์์ ๊ตฌํํ๋ค. ๋ฐ๋ผ์ Class ์ extends ๋ฅผ ํ๋กํ ํ์ ์ ํตํด ๊ตฌํํด๋ณด์ Constructor function (์์ฑ์ ํจ์) ๋ฐ ๊ฐ์ฒด ์์ฑ 1) Car (๋ถ๋ชจ) , Model (์์) ์ด๋ผ๋ ์์ฑ์ ํจ์ ์์ฑ ๊ฐ์์ Prototype ๊ฐ์ฒด๊ฐ ์์ฑ๋จ ( Car's prototype ,.. 2021. 3. 12. [JavaScript ] prototype vs __proto__ + ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ๊ฐ์ฒด function Person(){} var Person = new Function(); ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ property๋ฅผ ๊ฐ์ง ์ ์์ ↓ ํจ๊ป ์ดํดํ๋ ๊ฒ์ด ์ค์ https://rrecoder.tistory.com/87?category=947948 JavaScript ํ๋กํ ํ์ (prototype) ์ดํด Object (๊ฐ์ฒด) ์๋ก ์ฐ๊ด๋ ๋ณ์์ ํจ์๋ฅผ ๊ทธ๋ฃนํํด์ ์ด๋ฆ์ ๋ถ์ธ ๊ฒ var memberObject = { tami: 'name', developer: 'java', age:'25', } this ๋ฉ์๋๊ฐ ์์ ์ด ์ํด์๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํค์๋ ๊ฐ์ฒด๊ฐ ๋ด๋ถ์ .. rrecoder.tistory.com prototype ๊ณผ __proto__ ์์) Person Person.p.. 2021. 3. 11. [Javascript] __proto__ ์ ์์ โบ Object(๊ฐ์ฒด)์์์ ์์ ๋ณดํต์ class ๋จ๊ณ์์ ์์์ ๋ฐ๊ณ ์์์ ๋ฐ์ class ๊ฐ object๋ฅผ ๋ง๋ค์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฐ์ฒด ์์ฒด๋ฅผ ์์๋ฐ์ ์ ์์ prototype link : ๊ฐ์ฒด์ ์์์ ์ฐ๊ฒฐํด์ฃผ๋ ๋งํฌ prototype object : sub object๊ฐ ์์์ ๋ฐ์ ๊ฐ์ฒด ์ถ์ฒ)opentutorials.org/module/4047/24626 ๊ฐ์ฒด์ ๊ฐ์ฒด ์์ ์คํ๋๋ __proto__ ์์ 1) var superObj = {superVal:'super'} var subObj = {subVal :'sub'} subObj.__proto__ = superObj; console.log("subVal",subObj.subVal); //sub console.log("superVal",.. 2021. 3. 11. JavaScript ํจ์ํธ์ถ Call / Bind ๋ฉ์๋ ์ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์ธ ๋ ์ฐ๋ผ๋๋๋ก ํจ์๋ฅผ ์ฐ๊ณ this ๋ ๊ทธ๋ฅ์ผ์ง๋ง, ๋ช๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๊ฒฝํํ๊ณ ๋์ ๋ค์ ๊ณต๋ถํด๋ณด๋ JS๋ ์ ๋ง ์ ๊ธฐํ๊ณ ์ฌ๋ฐ๋ ๋๊ตฌ์ด๊ตฌ๋ .! ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์ JS์ ํจ์ : ์์ ๋ง์ this๋ฅผ ์ ์ํ๋๊ฒ ์์๋ก sayHello ๋ผ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ this๋ฅผ ์คํ์ํค๋ฉด Window ๊ฐ์ฒด๊ฐ ๋์จ๋ค. ์ฆ JS์์ ๊ธฐ๋ณธ์ ์ธ this = windowr๊ฐ์ฒด ๋ผ๋๊ฒ ๋๋ sayHello์์ window๋ฅผ ์ฐ๊ณ ์ถ์ง ์๋ค. this๋ฅผ ๊ทธ๋๊ทธ๋ ์๋ง์ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ผ ํ๋๋ฐ ์ด๊ฒ์ด ๋ฐ๋ก this์ binding! this๋ฅผ ์๋ง๊ฒ ๋ฐ๊ฟ์ฃผ๋ ํจ์๊ฐ ์๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก call apply, bind์ด๋ค . ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํจ์๋ฅผ ๋ง์ด ๋ค๋ฃจ๊ณ this๋ฅผ ๋ค๋ค์ผ ํ ๊ฒฝ์ฐ๊ฐ ๋ง์!! ์๋ฐ์คํฌ๋ฆฝํธ์์.. 2021. 3. 11. ์ด์ 1 2 3 4 ๋ค์ ๋ฐ์ํ