๋ชฉ๋กJavaScript ๐ (8)
<star />

ํด๋ก์ ๋ ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ์กฐํฉ์ด๋ค. ๐ A closure is the combination of a function and the lexical environment within which that function was declared. ๋ชจ๋ ํจ์ํ ์ธ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฅ ์ค์ํ ํน์ฑ์. ์ค์ฝํ์ ์์ฑ์ ํ์ฉํ ์์/์ธ๋ถ ์๋ณ์๋ฅผ ์ ๊ทผํจ. (์๋์ฑ๊ณผ ์ค์ฝํ ์ฒด์ธ ์ ์ด) 1) ๋ ์์ปฌ ์ค์ฝํ - ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ํธ์ถํ๋์ง๊ฐ ์๋๋ผ, ํจ์๋ฅผ ์ด๋์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํจ. ์ด๋ฅผ ๋ ์์ปฌ ์ค์ฝํ (์ ์ ์ค์ฝํ)๋ผ ํ๋ค. const x = 1; function foo() { const x = 1..
๋ณดํต์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ์ฐธ, ๊ฑฐ์ง์ ๊ตฌ๋ถํ๊ธฐ ์ํด์ Boolean ํํ์ ์๋ฃํ์ด ์กด์ฌํ๋ค. ๊ทธ ๊ฐ์ true ์ false ๋ ์ค์ ํ๋๊ฐ ๋จ. ๊ทธ๋ฆฌ๊ณ boolean ๊ณผ ์๋ฃํ์ด ๋ค๋ฅธ ๊ฐ์ ๋น๊ตํ๊ฒ ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค! ํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ true ๋ ์๋์ง๋ง, true ๋ก ์ฌ๊ฒจ์ง๋ ๊ฐ์ด ์กด์ฌํ๋๋ฐ... ์ด๊ฒ์ truthy ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, false ๋ ์๋์ง๋ง false ๋ก ์ฌ๊ฒจ์ง๋ ๊ฐ์ falsy ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. truthy ์ falsy ๋ฅผ ์ ์ดํดํ๊ณ ์๋ค๋ฉด ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. true {} (empty object) [] (empty array) 42 (number, not zero) "0", "false" (string, not empty) fals..