์ ์ฒด ๊ธ48 [JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? ์ค์ฝํ๋? ๋ณ์(์๋ณ์)์ ์ ํจ ๋ฒ์๋ฅผ ๋ปํ๋ค. ์ค์ฝํ(Scope)๋ ๋ณ์๊ฐ ์ด๋์, ์ด๋ป๊ฒ ์ ์ธ๋์๋์ง์ ๋ฐ๋ผ ๊ทธ ๋ณ์์ ์ ํจํ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ ๊ท์น์ด๊ธฐ๋ ํ๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ด ๊ท์น์ ๋ฐ๋ผ ์ฐธ์กฐ์ ๋์์ด ๋๋ ๋ณ์๋ฅผ ํ์ํด๋๊ฐ๋ค. (→ ๊ทธ๊ฒ์ Scope Chain) ๐์ค์ฝํ์ฒด์ธ? ์๋ฐ์ค ํฌ๋ฆฝํธ ES2015๊ธฐ์ค์ผ๋ก ํ๋ฐ๋ ์์ ์ ํจ์๊ฐ ๊ธฐ์ค์ด์๋๋ฐ ์์ฆ์ ๋ธ๋ก์ด ๊ธฐ์ค์ด๋ค( ํจ์๋ ๋คํํ ๋ธ๋ก์ ๊ฐ์ง๊ณ ์๋ค ) ์ค์ฝํ ์ฒด์ธ(Scope Chain)์ ์ผ์ข ์ ๋ฆฌ์คํธ๋ก์ ์ ์ญ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ํจ์์ ์ค์ฝํ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐจ๋ก๋ก ์ ์ฅํ๊ณ , ์๋ฏธ ๊ทธ๋๋ก ๊ฐ๊ฐ์ ์ค์ฝํ๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ(chain)๋๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฒ ์ ๋งํ๋ค. ์ ํจ ๋ฒ์๋ฅผ ๋ํ๋ด๋ ์ค์ฝํ๊ฐ scope ํ๋กํผํฐ๋ก ๊ฐ ํจ์ ๊ฐ์ฒด ๋ด์์ ์ฐ๊ฒฐ๋ฆฌ์คํธ.. 2022. 11. 9. ํด๋ก์ ์ ์ค์ฝํ์ฒด์ธ์ ์ดํด๋ฅผ ์ํ ์ฃผ์ ๊ฑฐ๋ฆผ ์๊ฐ.. ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ ์์ปฌ ์ค์ฝํ ํ๊ฒฝ์ ๋ฐ๋ฅธ๋ค๋๊ฑด ์๊ณ ์๊ณ ๋ ์์ปฌ ์ค์ฝํํ๊ฒฝ ์ฆ, ์ ์ ์ค์ฝํ๋ ํจ์์ ํธ์ถ์ด์๋ ์ ์ธ์ ์ํด์ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ค ๋ ์์ปฌ์ค์ฝํ๋ฅผ ๊ฐ์ฅ ์ดํดํ๊ธฐ ์ฌ์ด ์์ ์ฝ๋๋ ์๋์ด๋ค. ๋ ์์ปฌ ์ค์ฝํ( ๋์ ์ค์ฝํ ) var x = "global"; function outer() { var x = "local"; inner(); } function inner() { console.log(x); } outer() //global inner() //global ์๋์ ๊ฐ์ด ๋ ์์ปฌ ์ค์ฝํ๋ ๋ด๋ถ ํจ์์์ ์ฐพ์ ์ ์๋ ๋ณ์์ด๋ฉด ์๋จ์ ์ธ๋ถํจ์๋ก ์ฌ๋ผ๊ฐ ์ฐพ๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ์ต์ข ์ ์ผ๋ก ์ ์ญ๋ณ์ ๋ฒ์๊น์ง ์ฌ๋ผ๊ฐ์๋ ์ฐพ์ ์ ์์ผ๋ฉด ์๋ฌ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ค. ๋์ ์ค์ฝํ var x = "global.. 2022. 11. 9. [JavaScript] Scope๋? ๐๐จ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์ ๋ ๋ฒจ ์ค์ฝํ(function-level scope)๋ฅผ ๋ฐ๋ฅธ๋ค. ํจ์ ๋ ๋ฒจ ์ค์ฝํ๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์๋ง ์ ํจํ๊ณ ํจ์ ์ธ๋ถ์์๋ ์ ํจํ์ง ์๋ค(์ฐธ์กฐํ ์ ์๋ค)๋ ๊ฒ์ด๋ค. ๐๐ป๋จ, ECMAScript 6์์ ๋์ ๋ let keyword๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๐จ๐ป๐ป Scope๋? Scope๋ ์ง์ญํ๋ฉด "๋ฒ์"๋ผ๋ ๋ป์ด๋ค. JavaScript ์์ Scope(์ค์ฝํ)๋ ๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ๋งํ๋ค. ์๋ณ์(๋ณ์)๋ฅผ ์ฐพ๊ธฐ์ํ ๊ท์น์ด๋ผ๊ณ ๋ ํ๋ค. ์๋ณ์์ ์ ํจ ๋ฒ์ ⇒ ๋ชจ๋ ์๋ณ์๋ ์์ ์ด ์ ์ธ๋ ์์น์ ์ํ์ฌ ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ณ์ ์์ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํจ ๋ฒ์๊ฐ ๊ฒฐ์ ๋จ. var x = 'global'; f.. 2022. 11. 5. ์ฝ๋ฐฑ ํจ์(Callback) ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ๋ฅผ ์ฒ๋ฆฌํ ๋ callback๊ณผ promise๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค. ๋จผ์ callback ํจ์์ ๋ํด์ ์์๋ณด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ? ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ํน์ ์ฝ๋์ ์ฐ์ฐ์ด ๋๋ ๋๊น์ง ์ฝ๋์ ์คํ์ ๋ฉ์ถ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์คํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ํ๋ก์ ํธ ์ํ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ์ด๋ฅผ ์ํด HTTP ํต์ ์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ ์ด๋ ๋น๋๊ธฐ์ฒ๋ฆฌ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ์๋์ ajax ํต์ ์ฌ๋ก๋ฅผ ํตํด ์์๋ณด์ function getData() { var tableData; $.get('https://domain.com/products/1', function(response) { tableData = response; }).. 2022. 11. 3. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 12 ๋ค์