์๋ฐ์คํฌ๋ฆฝํธ
-
๐์๋ฐ์คํฌ๋ฆฝํธ 3 | Lexical Environment, Scope Chain์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 15. 19:01
function a(){ let b = 10; function c(){ console.log(b); } c(); } a(); console.log(b); ์์ ์ฝ๋๊ฐ ์คํ๋ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋์๊ฐ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. 1. ๋จผ์ ์ ์ญ ์ค์ฝํ์ ์์นํ๊ณ ์๋ ๋ณ์ a๋ฅผ ๋ด๊ณ , ๋ณ์ a์๋ ์ ์๋์ด์๋ ํจ์๋ฅผ ํ ๋นํ๋ค. 2. ๊ทธ ๋ค์ a ํจ์๊ฐ ํธ์ถ๋๊ณ ์ ์ญ ์ปจํ ์คํธ์์ a๊ฐ ์คํ๋์ด let b = 10 ์ฝ๋๊ฐ ์คํ๋๋ค. 3. ์ด์ call stack memory์ aํจ์๊ฐ ์ ์ฅ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ณ์ b์ c๊ฐ callstack์ ์ ์ฅ๋๋ค(b : 10, c : function(){}). 4. ๋ค์ cํจ์๊ฐ ํธ์ถ๋๊ณ console.log(b)๋ฅผ ๋ง๋๋ค. ํ์ฌ ํ์ฑํ ์ํ์ธ c ์ปจํ ์คํธ์์ b๋ฅผ ๊ฒ..
-
๐์๋ฐ์คํฌ๋ฆฝํธ 2 | ์ค์ฝํ(scope), let vs var vs const์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 15. 17:39
์ค์ฝํ(scope) ์ค์ฝํ๋ ์ฝ๊ฒ ๋งํด ๋ณ์์ ์ ํจ๋ฒ์์ด๋ค. function start(){ for (let i = 0; i < 5; i++){ console.log(i); } console.log(i); } start(); ์์ ์ฝ๋๋ฅผ ์คํ ์์ผ๋ณด๋ฉด for ๋ฌธ ์์ console.log(i) ๋ ์ ์คํ๋ ๋ฐ๋ฉด, for ๋ฌธ ๋ฐ์ console.log(i)๋ i๊ฐ ์ ์๋์ด ์์ง ์๋ค๊ณ ์๋ฌ๊ฐ ๋ฌ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ทธ ์ด์ ๋ i๊ฐ for ๋ฌธ ์์์๋ง ์ ํจํ ๋ณ์์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ณ์๋ฅผ ์์ ๋ฐ์์ ์ ์ธํ์ฌ ์ค์ฝํ์ ๋ฒ์๋ฅผ for๋ฌธ ๋ฐ์ผ๋ก ํ์ฅ์ํฌ ์ ์๋ค. function start(){ let i = 0; for(i = 0; i < 5; i++){ console...
-
๐์๋ฐ์คํฌ๋ฆฝํธ 1 | ๊ธฐ๋ณธํ ๋ฐ์ดํฐ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 13. 16:09
๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๊ตฌ๋ถํ๋ ๊ธฐ์ค ๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ๋ ํฌ๊ฒ ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ 2๊ฐ์ง๋ก ๋๋๋ค. ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๊ตฌ๋ถ ์ง๋ ๊ฐ์ฅ ํฐ ์ ์ ์ค์ ๊ฐ ์ ์ฒด ๋ณต์ฌ vs ์ค์ ๊ฐ์ด ๋ค์ด์๋ ์ฃผ์ ๊ฐ ๋ณต์ฌ์ด๋ค. - ๊ธฐ๋ณธํ (copy value of a) let a = 1; let b = a; a += 10; console.log(a) //11 console.log(b) //1 ์์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด a์ ๊ฐ์ด ๋ณํ๋๋ผ๋ b์ ๊ฐ์ ๊ทธ๋๋ก ์ธ ๊ฒ์ ๋ณผ ์ ์๋ค. let b = a; ์ฝ๋๋ฅผ ํตํด a๊ฐ ์ ์ฒด๊ฐ ๋ณต์ฌ๋์ด b๋ผ๋ ๋ณ์์ ๋ด๊ฒผ๋ค. a, b๋ ์๋ก ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ธฐ๋ณธํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋๋ ์๋์ ๊ฐ์ ์์๋ก ์ ์ฅ๋๋ค. 1. ๋ณ์ ์์ญ์์ ๋น ๊ณต๊ฐ(@1003 : ์์์ ..
-
๐ ์น ๋ธ๋ผ์ฐ์ 1 | ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง (์น ํธํ์ฑ)Web Architecture 2020. 11. 23. 07:13
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ธฐ๋ฅ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ, ํฌ๋กฌ ๋ฑ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ํํธ์จ์ด(์ฑ)๋ฅผ ๋ธ๋ผ์ฐ์ ๋ผ๊ณ ํ๋ค. ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ฅ ํต์ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ url(์์์ด ์๋ ์์น, ์ฃผ์)์ ์ ๋ ฅํ์ ๋ ์์(์ฃผ๋ก HTMLํ์ผ)์ ์๋ฒ์ ์์ฒญํ๊ณ ๋ธ๋ผ์ฐ์ ์ ํ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง(์น ํธํ์ฑ) ๋ธ๋ผ์ฐ์ ๋ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ, ํ์ด์ดํญ์ค, ์ฌํ๋ฆฌ, ํฌ๋กฌ ๋ฑ ๋ง์ ์ข ๋ฅ๊ฐ ์๋ค. ๊ณผ๊ฑฐ์๋ ๋ธ๋ผ์ฐ์ ๋ค์ด ์ ๋ง๋ค ๋ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ง๋ค์ด์ ์ฌ๊ฐํ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๊ฒช์๋ค. (์น ์๋น์ค๋ฅผ ๋ง๋๋๋ฐ ํฌ๋กฌ์ ์ฌ์ฉํ๋ ์ ์ , ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ๋ฅผ ์ฌ์ฉํ๋ ์ ์ ๋ฑ ๊ฐ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ๋ง๊ฒ ์น ์๋น์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค) ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์น ํ์คํ ๊ธฐ๊ตฌ์ธ W3C(World Wide Web Consort..
-
๐์๋ฐ์คํฌ๋ฆฝํธ 5 | this, 5๊ฐ์ง ๋ฐ์ธ๋ฉ ํจํด์๋ฐ์คํฌ๋ฆฝํธ 2020. 7. 21. 18:27
this let array = []; array.push(1); array.pop(); push, pop, shift, unshift ๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ง์ ๋ฉ์๋๋ค์ ์ฌ์ฉํ ์ ์๋ค. ๋ฉ์๋๋ค์ ์์ ์ด ์ํ ๊ฐ์ฒด(๋ง์นจํ ์์ ๊ฐ์ฒด)์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ๋ณ๊ฒฝํ ์ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํ๋ ๋ฉ์๋๋ค์ ์ด๋ฏธ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์๋ฅผ ํด๋์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์๋ค. function Example(){ this.storage = []; } Example.prototype.push = function(){ this.storage.push(1); return 1; } Example ์์ฑ์ ํจ์๋ฅผ ์์ฑํ๋ค. push ๋ฉ์๋๋ storage์ 1์ ์ถ๊ฐํ๋ ๋ฉ์๋์ด๋ค. ์์ฑ์ ํจ์๋ก ์ธ์คํด์ค๋ฅผ ์์ฑ..