๋ฉํ ๋ง 3๋ฒ์งธ
๐ F-lab ๋ฉํ ๋ง ๊ธฐ๋ก
๋ฉํ ๋ง ์ดํ ๋ถ์กฑํ ๋ถ๋ถ์ ์ฑ์ฐ๊ธฐ ์ํ ๊ธฐ๋ก
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋?(feat.๋ถ๋ณ์ฑ)
ํ๋ก๊ทธ๋๋ฐ์ ํจ๋ฌ๋ค์
ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํ๋ก๊ทธ๋๋จธ์๊ฒ ํ๋ก๊ทธ๋๋ฐ์ ๊ด์ ์ ๊ฐ๊ฒ ํ์ฌ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ฑํ ์ง ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค.
์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํตํด์ ์๋ก์ด ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ ๋ฒ์ ๋ฐฐ์ฐ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
-
๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ: ๋ฌด์(what)์ ํ ๊ฒ์ธ์ง๋ณด๋ค
์ด๋ป๊ฒ(how) ํ ๊ฒ์ธ์ง
- ์ ์ฐจ์งํฅ ํ๋ก๊ทธ๋๋ฐ: ์ํ๋์ด์ผํ ์์ฐจ์ ์ธ ์ฒ๋ฆฌ ๊ณผ์ ์ ํฌํจํ๋ ๋ฐฉ์
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ: ๊ฐ์ฒด๋ค์ ์งํฉ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ํธ์์ฉ์ ํํํ๋ ๋ฐฉ์
-
์ ์ธํ ํ๋ก๊ทธ๋๋ฐ: ์ด๋ป๊ฒ(how) ํ ๊ฒ์ธ์ง๋ณด๋ค
๋ฌด์(what)์ ํ ๊ฒ์ธ์ง
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ: ์์ ํจ์๋ฅผ ์กฐํฉํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ์
[๋ณด์ถฉ ํ์]
์๋ ๋ธ๋ผ์ฐ์ ์์๋ ์ด๋ป๊ฒ ์ต๊ทผ ์ฝ๋๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ ๊น?
๋ฐ๋ฒจ(Babel)์ ์ฌ์ฉํ๋ค. ๋ฐ๋ฒจ์ ES6์ดํ์ ์ฝ๋๋ฅผ ์ด์ JavaScript ์์ง์์ ์คํํ ์ ์๋ ์ฝ๋๋ก ๋ณํํด์ฃผ๋ ๋ฌด๋ฃ ์คํ์์ค JavaScript ํธ๋์ค์ปดํ์ผ๋ฌ์ด๋ค. ๋จ์ํ๊ฒ ์๊ฐํ๋ฉด, ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์์ ๋ฌธ๋ฒ๋ค๋ก ์ ํํด์ฃผ๊ณ ์ด๋ฅผ ํตํด ์ด์ ๋ธ๋ผ์ฐ์ ์์๋ ํด๋น ์ฝ๋๊ฐ ์คํ๋ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค.
[๋ณด์ถฉ ํ์]
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด๋?
๋ฆฌํฐ๋ด์ด๋ ์์ค์ฝ๋์ ๊ณ ์ ๋ ๊ฐ์ ๋ํํ๋ ์ฉ์ด๋ก ๊ณ ์ ๋ ๊ฐ์ ๋ํ๋ด๋ ํํ ๊ทธ ์์ฒด
์ด๋ค.
์ฆ, ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋ฌธ์ ๋๋ ์ฝ์๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํด ์ด๋ค ๊ณ ์ ๋ ๊ฐ์ ์์ฑํ๋ ํ๊ธฐ๋ฒ์ด๋ค.
var Dog = function (name, age) {
this.name = name;
this.age = age;
}
var hodu = new Dog('hodu', 2); // ์์ฑ์ ํจ์๋ฅผ ํตํ ์ธ์คํด์ค ๊ฐ์ฒด ์์ฑ
{name:'hodu', age: 2} // ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํตํ ๊ฐ์ฒด ์์ฑ
Array์ flatten ๋ฉ์๋๋ฅผ ์ฌ๊ทํจ์๋ก ๊ตฌํํด๋ณด๊ธฐ
const arr = [
[a, b],
[b, c, d],
[d, f, [e, g]],
];
[๋ณด์ถฉ ํ์]
์ผ๊ธ๊ฐ์ฒด๋?
- ๊ฐ์ผ๋ก ์ ์ ํ ์ ์๋ค.
- ํ๋ผ๋ฏธํฐ(์ธ์)๋ก ์ ๋ฌํ ์ ์๋ค.
- ๋ฆฌํด๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
- ๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑ ๊ฐ๋ฅํ๋ค.
์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ์ผ๊ธ๊ฐ์ฒด๋ผ๊ณ ํ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์์์ ํจ์๋ ์ผ๊ธ๊ฐ์ฒด์ด๊ธฐ์ ์์ ๊ฒฝ์ฐ์ ๋ชจ๋ ํด๋นํ๋ค.
์ผ๊ธ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์
- ์ฝ๋ฐฑํจ์๋ผ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.(ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋๊น)
- ๊ณ ์ฐจํจ์๊ฐ ๊ฐ๋ฅํ๋ค.(ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ฑฐ๋ ํจ์๋ฅผ ๋ฐํํ๋๊น)
- ํด๋ก์ ํ์์ด ๊ฐ๋ฅํ๋ค.(๋ด๋ถํจ์๋ฅผ ์ธ๋ถ๋ก ์ ๋ฌ์ด ๊ฐ๋ฅํ๋๊น)
Array์์ Object์ ๋ฉ์๋๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง?
Array์ prototype์ ๊ณง Object์ instance์ด๋ค.
๋ฐ๋ผ์ ์๋์ ์ฝ๋๋ฅผ ๋ณด๋ฉด
Array.prototype.__proto__.constructor === Object; // true
Object.getPrototypeOf(Array.prototype).constructor === Object; // true
๋ฐ๋ผ์ ํ๋กํ ํ์ ์ฒด์ด๋์ ์ํด Array์์ Object์ ํ๋กํ ํ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฐ ์์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ํจ์๋ Object์ prototype์ ๋๋ฌ ๊ฐ๋ฅํ๋ฏ๋ก Object๋ง์ ๋ฉ์๋๋ ์คํํน ๋ฉ์๋๋ก์ ๊ตฌํํด๋์๋ค.