๐ Book-Talk/๋ชจ๋ JS Deep Dive
10_๊ฐ์ฒด ๋ฆฌํฐ๋ด 10.1 ๊ฐ์ฒด ? ๊ฐ์ฒด๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฐ(ํ๋กํผํฐ) ๊ณผ ๊ทธ ๊ฐ์ ์ฐธ์กฐํ๊ณ ์กฐ์ ํ ์ ์๋ ๋์(๋ฉ์๋) ์ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ ๊ฒ ์ํ(๋ฐ์ดํฐ) ์ ๋์(๋ฉ์๋) ์ ํ๋์ ๋จ์๋ก ๊ตฌ์กฐ์ ํ ์ ์์ด ์ ์ฉํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด(object) ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ด๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ถ๋ถ ๊ฐ์ฒด์ด๋ค. ์์ ๊ฐ์ ์ ์ธํ ๋๋จธ์ง ๊ฐ(ํจ์, ๋ฐฐ์ด, ํํ์ ๋ฑ)์ ๋ชจ๋ ๊ฐ์ฒด ์์ ํ์
์ ๋จ ํ๋์ ๊ฐ๋ง ๋ํ๋ด์ง๋ง, ๊ฐ์ฒด ํ์
์ ๋ค์ํ ํ์
์ ๊ฐ์ ํ๋์ ๋จ์๋ก ๊ตฌ์ฑํ ๋ณตํฉ์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ค. ์์ ํ์
์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด์ง๋ง, ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ค. ๊ฐ์ฒด๋ 0๊ฐ ์ด์์ ํ๋กํผํฐ๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ฉฐ, ํ๋กํผํฐ๋ ํค(key) ์ ๊ฐ(value) ์ผ๋ก ๊ตฌ์ฑ๋๋ค...
๐ Book-Talk/๋ชจ๋ JS Deep Dive
09_ํ์
๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ 9.1 ํ์
๋ณํ ? ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ํ์
์ ๊ฐ์ง๋๋ฐ, ๊ฐ๋ฐ์์ ์๋์ ๋ฐ๋ผ ๊ฐ์ ํ์
์ ๋ณํํ๋ ๊ฒ์ -> ๋ช
์์ ํ์
๋ณํ ๋๋ ํ์
์บ์คํ
์ด๋ผ๊ณ ํ๋ค. ๊ฐ๋ฐ์์ ์๋์๋ ์๊ด์์ด ํํ์์ ํ๊ฐํ๋ ๋์ค์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์๋ฌต์ ์ผ๋กค ํ์
์ด ์๋ ๋ณํ๋๋ ๊ฒ์ -> ์๋ฌต์ ํ์
๋ณํ ๋๋ ํ์
๊ฐ์ ๋ณํ ์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ๊ธ์ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ก ์๋ฌต์ ์ผ๋ก ํ์
๋ณํ์ ํตํด ํํ์์ ํ๊ฐ ๊ทธ๋ ๋ค๊ณ ๋ช
์์ ํ์
๋ณํ์ด๋ ์๋ฌต์ ํ์
๋ณํ์ด๋ ๊ธฐ์กด ์์๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋๋ค. -> ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ ์ด๋ค. ์ฆ, ํ์
๋ณํ์ด๋ ๊ธฐ์กด ์์ ๊ฐ์ ์ฌ์ฉํด ๋ค๋ฅธ ํ์
์ ์๋ก์ด ๊ฐ์ ์์ฑ ํ๋ ๊ฒ 9.2 ์๋ฌต์ ํ์
๋ณํ ์๋ฐ์คํฌ๋ฆฝํธ..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
08_์ ์ด๋ฌธ ์ ์ด๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ ํ๊ฑฐ๋(์กฐ๊ฑด๋ฌธ) ๋ฐ๋ณต ์คํ(๋ฐ๋ณต๋ฌธ) ํ ๋ ์ฌ์ฉ ์ฝ๋๋ ์์์ ์๋๋ก ์์ฐจ์ ์ผ๋ก ์คํํ๋๋ฐ, ์ ์ด๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ์คํ ํ๋ฆ์ ์ธ์์ ์ผ๋ก ์ ์ดํ ์ ์๋ค. ํ์ง๋ง ์ง๊ด์ ์ธ ์ฝ๋์ ํ๋ฆ์ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค์ด์ ์ฝ๋์ ๊ฐ๋
์ฑ์ ํด์น๋ ๋จ์ ์ด ์๋ค. forEach, map, filter, reduce ๊ฐ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์์๋ ์ ์ด๋ฌธ์ ์ฌ์ฉ์ ์ต์ ํ์ฌ ๋ณต์ก์ฑ์ ํด๊ฒฐํ๊ณ ์ ๋
ธ๋ ฅํ๋ค. 8.1 ๋ธ๋ก๋ฌธ 0๊ฐ ์ด์์ ๋ฌธ์ ์ค๊ดํธ {} ๋ก ๋ฌถ์ ๊ฒ์ผ๋ก ์ฝ๋ ๋ธ๋ก ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ธ๋ก๋ฌธ์ ํ๋์ ์คํ๋จ์ ๋ก ์ทจ๊ธํ๋ค. // ๋ธ๋ก๋ฌธ { var foo = 10; } // ์ ์ด๋ฌธ var x = 1; if (x < 10) { x++; } // ํจ..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
07_์ฐ์ฐ์ ์ฐ์ฐ์(Operator)๋ ํ๋ ์ด์์ ํํ์์ ๋์์ผ๋ก ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ํํ์์ด์ด์ผ ํ๋ค. ์ฐ์ , ํ ๋น, ๋น๊ต, ๋
ผ๋ฆฌ, ํ์
, ์ง์ ์ฐ์ฐ ๋ฑ์ ์ํํด์ ํ๋์ ๊ฐ์ ๋ง๋ ๋ค. // ์ฐ์ ์ฐ์ฐ์ 5 * 4 // โ 20 // ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์ 'My name is ' + 'apil' // โ My name is apil // ํ ๋น ์ฐ์ฐ์ color = 'blue' // โ blue // ๋น๊ต ์ฐ์ฐ์ 3 > 5 // โ false // ๋
ผ๋ฆฌ ์ฐ์ฐ์ true && false // โ false // ํ์
์ฐ์ฐ์ typeof 'Hi' // โ string ํผ์ฐ์ฐ์๋ ๊ฐ์ด๋ผ๋ ๋ช
์ฌ์ ์ญํ ์ ํ๊ณ ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์๋ฅผ ์ฐ์ฐํ์ฌ ์๋ก์ด ๊ฐ์ ๋ง๋ ๋ค ๋ผ๋ ๋์ฌ ์ญํ ์ ํ๋ค. 7.1 ์ฐ์ ์ฐ์ฐ์ ์ฐ์ ..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
06_๋ฐ์ดํฐ ํ์
๋ฐ์ดํฐ ํ์
(data type, ์ค์ฌ์ ํ์
) ์ ๊ฐ์ ์ข
๋ฅ๋ฅผ ๋งํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ํ์
์ ๊ฐ๋๋ค. ES6์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ ํ์
์ 7๊ฐ๋ค. ๊ตฌ๋ถ ๋ฐ์ดํฐ ํ์
์ค๋ช
์์ํ์
number ์ซ์, ์ ์์ ์ค์ ๊ตฌ๋ถ ์์ด ํ๋์ ์ซ์ ํ์
๋ง ์กด์ฌ boolean ๋
ผ๋ฆฌ์ ์ฐธ(true) ๊ณผ ๊ฑฐ์ง(false) undefined var ํค์๋๋ก ์ ์ธ๋ ๋ณ์์ ์๋ฌต์ ์ผ๋ก ํ ๋น๋๋ ๊ฐ null ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ช
์ํ ๋ ์ฌ์ฉํ๋ ๊ฐ symbol ES6์ ์ถ๊ฐ๋ 7๋ฒ์งธ ํ์
๊ฐ์ฒด ํ์
๊ฐ์ฒด, ํจ์, ๋ฐฐ์ด ๋ฑ ์ซ์ ํ์
์ ๊ฐ 1 ๊ณผ ๋ฌธ์์ด ํ์
์ ๊ฐ '1' ์ ์ ํ ๋ค๋ฅธ ๊ฐ์ด๋ค. ์์ฑํ ๋ชฉ์ ๊ณผ ์ฉ๋๊ฐ ๋ค๋ฅด๋ค ์ซ์๋ ์ฃผ๋ก ์ฐ์ ์ฐ์ฐ์ ์ํด ์์ฑ ๋ฌธ์์ด์ ์ฃผ๋ก ํ
์คํธ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
05_ํํ์๊ณผ ๋ฌธ 5.1 ๊ฐ(value) ๊ฐ(value)์ ์(ํํ์ expression)์ด ํ๊ฐ(evaluate)๋์ด ์์ฑ๋ ๊ฒฐ๊ณผ๋ฅผ ๋งํ๋ค. // 10 + 20 ์ ํ๊ฐ๋์ด ์ซ์ 30์ ์์ฑํ๋ค. 10 + 20; // 30 ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์
์ ๊ฐ์ง๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ์ 2์ง์, ์ฆ ๋นํธ(bit)์ ๋์ด๋ก ์ ์ฅ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์
์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํด์๋ ์ ์๋ค. ex) ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ 0100 0001์ ์ซ์๋ก ํด์ํ๋ฉด 65์ง๋ง, ๋ฌธ์๋ก ํด์ํ๋ฉด A๋ค. ๋ณ์ ? ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด or ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ -> ๋ณ์์ ํ ๋น๋๋ ๊ฒ์ ๊ฐ์ด๋ค. 5.2 ๋ฆฌํฐ๋ด(literal) ๋ฆฌํฐ๋ด(literal)์ ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋ฌธ์ ๋๋ ..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
04_๋ณ์ 4.1 ๋ณ์๋ ๋ฌด์์ธ๊ฐ? ์ ํ์ํ๊ฐ? ๋ณ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํต์ฌ ๊ฐ๋
์ด๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ธฐ์ตํ๊ณ ์ถ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ , ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด ๋ค์ฌ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ๋ณ์๋ผ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค. ์ฆ, ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋งํ๋ค. ๊ฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ง์ ์ธ ์ด๋ฆ์ด๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ปดํ์ผ๋ฌ ๋๋ ์ธํฐํ๋ฆฌํฐ์ ์ํด ๊ฐ์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ก ์นํ๋์ด ์คํ๋๋ค. ๋ณ์์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ํ ๋น(assignment)์ด๋ผ๊ณ ํ๊ณ , ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด ๋ค์ด๋ ๊ฒ์ ์ฐธ์กฐ(reference)๋ผ๊ณ ํ๋ค. ์ถ๊ฐ ) ์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๋ ๋ฐฉ๋ฒ ์ฌ๋์ ๊ณ์ฐ๊ณผ ๊ธฐ์ต์..
๐ Book-Talk/๋ชจ๋ JS Deep Dive
02_์๋ฐ์คํฌ๋ฆฝํธ๋? 2.1 ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ 1995๋
, ๋ท์ค์ผ์ด์ค ์ปค๋ฎค๋์ผ์ด์
์ฆ๋ ์นํ์ด์ง์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด -> ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ๊ฒฝ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋์
ํ๊ธฐ๋ฅผ ๊ฒฐ์ -> ๊ทธ๋์ ํ์ํ ๊ฒ์ด, ๋ธ๋ ๋ ์์ดํฌ๊ฐ ๊ฐ๋ฐํ ์๋ฐ์คํฌ๋ฆฝํธ 1996๋
3์, ๋ชจ์นด(Mocha) ๋ก ๋ช
๋ช
-> ๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ์ ์น ๋ธ๋ผ์ฐ์ ์ธ ๋ท์ค์ผ์ดํ ๋ด๋น๊ฒ์ดํฐ2 ์ ํ์ฌ -> ๊ทธ ํด 9์, ๋ผ์ด๋ธ์คํฌ๋ฆฝํธ๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ -> ๊ทธ ํด 12์, ์๋ฐ์คํฌ๋ฆฝํธ๋ผ๋ ์ด๋ฆ์ผ๋ก ์ต์ข
๋ช
๋ช
2.2 ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ 1996๋
8์, ๋ง์ดํฌ๋ก์ํํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ๋ฒ์ ์ธ JScript ๋ฅผ ์ธํฐ๋ท ์ต์คํ๋ก์ด 3.0 ์ ํ์ฌํ๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ JScript ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ์คํ๋์ง ๋ชปํ๊ณ ์ ๋นํ ํธํ๋์..