๋ฑ์ฅ ๋ฐฐ๊ฒฝ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก ํด๋์ค๊ฐ ํ์ ์๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ํ์ง๋ง ํด๋์ค ๊ธฐ๋ฐ ์ธ์ด์ ์ต์ํ ํ๋ก๊ทธ๋๋จธ๋ค์ ํ๋กํ ํ์ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ํผ๋์ ๋๋ ์ ์์ผ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ ต๊ฒ ๋๋ผ๊ฒ ํ๋ ํ๋์ ์ฅ๋ฒฝ์ฒ๋ผ ์ธ์๋์์ต๋๋ค. ๋ฐ๋ผ์ ES6์์ ๋์ ๋ ํด๋์ค๋ ๊ธฐ์กด ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๋ณด๋ค ํด๋์ค ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋งค์ฐ ํก์ฌํ ์๋ก์ด ๊ฐ์ฒด ์์ฑ ๋ฉ์ปค๋์ฆ์ ์ ์ํ์์ต๋๋ค. ์ฌ์ค ํด๋์ค๋ ํจ์์ด๋ฉฐ ๊ธฐ์กด ํ๋กํ ํ์ ๊ธฐ๋ฐ ํจํด์ ํด๋์ค ๊ธฐ๋ฐ ํจํด์ฒ๋ผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฌธ๋ฒ์ ์คํ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ํ์ง๋ง, ์์ฑ์ ํจ์์ ๋งค์ฐ ์ ์ฌํ๊ฒ ๋์ํ๋ ๋ฐ๋ฉด ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์์ด ์๋ก์ด ๊ฐ์ฒด ์์ฑ ๋ฉ์ปค๋์ฆ์ผ๋ก ๋ณด๋ ๊ฒ์ด ์ข ๋ ..
ํด๋ก์ (closure)๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ์ ๊ฐ๋ ์ด ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋๋ ์ค์ํ ํน์ฑ์ผ๋ก MDN์์๋ ํด๋ก์ ๋ฅผ "ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ๊ณผ์ ์กฐํฉ"์ด๋ผ๊ณ ์ ์ํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋ก์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ๋ํด ์์์ผํฉ๋๋ค. ๋ ์์ปฌ ์ค์ฝํ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ์ธ ๋ ์์ปฌ ์ค์ฝํ(์ ์ ์ค์ฝํ)๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. const x = 1; function foo () { const x = 10; bar(); } function bar () { console.log(X); } foo(); // 1 bar(); // 1 ์ ์์ ์ foo ํจ์์ bar ํจ์๋ ๋ชจ๋ ์ ์ญ์์ ์ ์๋ ์ ์ญ ํจ์๋ก foo ํจ์์ bar ํจ์ ๋ชจ๋ ..
์คํ ์ปจํ ์คํธ(execution context)๋? ์คํ ์ปจํ ์คํธ๋ ์์ค์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ๋ก ๊ด๋ฆฌํ๋ ์์ญ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. ์์ค์ฝ๋์ ํ์ ECMAScript ์ฌ์์ ์์ค์ฝ๋๋ฅผ 4๊ฐ์ง ํ์ ์ผ๋ก ๊ตฌ๋ถํ๋๋ฐ ํ์ ์ ๋ฐ๋ผ ์คํ ์ปจํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ณผ์ ๊ณผ ๊ด๋ฆฌ ๋ด์ฉ์ด ๋ค๋ฆ ๋๋ค. ์์ค์ฝ๋ ํ์ ์ค๋ช ์ ์ญ ์ฝ๋ - ์ ์ญ์ ์กด์ฌํ๋ ์์ค์ฝ๋ - ์ต์์ ์ค์ฝํ์ธ ์ ์ญ ์ค์ฝํ ์์ฑ - ์ ์ญ ์ฝ๋๊ฐ ํ๊ฐ๋๋ฉด ์ ์ญ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ ํจ์ ์ฝ๋ - ํจ์ ๋ด๋ถ์ ์กด์ฌํ๋ ์์ค์ฝ๋ - ์ง์ญ ์ค์ฝํ๋ฅผ ์์ฑ - ํจ์ ์ฝ๋๊ฐ ํ๊ฐ๋๋ฉด ํจ์ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ eval ์ฝ๋ - ๋นํธ์ธ ์ ์ญ ํจ์์ธ eval ํจ์์ ์ธ์๋ก ์ ๋ฌ๋์ด ์คํ๋๋ ์..
this ํค์๋ this๋ ์์ ์ด ์ํ ๊ฐ์ฒด๋ฅผ ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฅดํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์์ ๋๋ค. this๋ฅผ ํตํด ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. // ์์ฑ์ ํจ์ function Circle(radius) { // this๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด this.radius = radius; } Circle.prototype.getDiameter = function () { // this๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด return 2 * this.radius; }; // ์ธ์คํด์ค ์์ฑ const circle = new Circle(5); console.log(circle.getDiameter()); // 10 ์๋ฐ..
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ถ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ ๊ฐ์ฒด๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค. ์ข ๋ฅ ์ค๋ช ํ์ค ๋นํธ์ธ ๊ฐ์ฒด - ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒด - ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ๊ณต - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ - ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต๋จ - ๋ณ๋์ ์ ์ธ ์์ด ์ ์ญ ๋ณ์์ฒ๋ผ ์ธ์ ๋ ์ฐธ์กฐ ๊ฐ๋ฅ ํธ์คํธ ๊ฐ์ฒด - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ฒด (ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒดX) - ๋ธ๋ผ์ฐ์ ํ๊ฒฝ : *ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต - Node.js ํ๊ฒฝ : ๊ณ ์ ์ API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด - ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ๊ฐ์ฒด (ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ ํธ์คํธ ๊ฐ์ฒด์ฒ๋ผ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๊ฐ์ฒดX)..
strict mode๋? ES5๋ถํฐ ์ถ๊ฐ๋ strict mode(์๊ฒฉ ๋ชจ๋)๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข๋ ์๊ฒฉํ ์ ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ต์ ํ ์์ ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ค๋ฅ๋ฅผ ์ค์ฌ ์์ ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ํด๊ฒฐ์ฑ ์ผ๋ก, ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ด๋ ค์ด ๊ฐ๋ฐ ํ๊ฒฝ์ธ strict mode๋ฅผ ๋ง๋ค๊ณ ๊ทธ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค. *ESLint : ์ ์ ๋ถ์๊ธฐ๋ฅ์ ํตํด ์์ค์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ์์ค์ฝ๋๋ฅผ ์ค์บํ์ฌ ๋ฌธ๋ฒ์ ์ค๋ฅ๋ฟ๋ง ์๋๋ผ ์ ์ฌ์ ์ค๋ฅ๊น์ง ์ฐพ์๋ด๊ณ ์ค๋ฅ์ ์์ธ์ ๋ฆฌํฌํ ํด์ฃผ๋ ์ ์ฉํ ๋๊ตฌ. ๋ฆฐํธ ๋๊ตฌ๋ฅผ ํ์ฉํ๋ฉด strict mode์ ์ ์ฌํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ด ์ค์ ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ESLint..
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช ๋ นํ, ํจ์ํ, ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ ๋ฉํฐ ํจ๋ฌ๋ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. C++๋ ์๋ฐ์ ๊ฐ์ ํด๋์ค ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณด๋ค ํจ์จ์ ์ด๋ฉฐ ๋ ๊ฐ๋ ฅํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ์ ์ง๋๊ณ ์์ต๋๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ช ๋ น์ด ๋๋ ํจ์์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์ ํต์ ์ธ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฐจ์งํฅ์ ๊ด์ ์์ ๋ฒ์ด๋ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ๋จ์, ์ฆ ๊ฐ์ฒด์ ์งํฉ์ผ๋ก ํ๋ก๊ทธ๋จ์ ํํํ๋ ค๋ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋๋ค. // ์ด๋ฆ๊ณผ ์ฃผ์ ์์ฑ์ ๊ฐ๋ ๊ฐ์ฒด const person = { name: 'Lee', address: 'Seoul' }; const circle = { radius: 5, getDiameter() { return 2 * radi..
์ผ๊ธ ๊ฐ์ฒด ์ผ๊ธ ๊ฐ์ฒด๋, ๋ค์๊ณผ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด์ ๋๋ค. ๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ์ ์๋ค. ์ฆ, ๋ฐํ์์ ์์ฑ์ด ๊ฐ๋ฅํ๋ค. ๋ณ์๋ ์๋ฃ๊ตฌ์กฐ(๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ)์ ์ ์ฅํ ์ ์๋ค. ํจ์์ ๋งค๊ฐ๋ณ์์ ์ ๋ฌํ ์ ์๋ค. ํจ์์ ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ๋ค์ ์์ ์ ๊ฐ์ด ์์ ์กฐ๊ฑด์ ๋ณด๋ ๋ง์กฑํ๋ฏ๋ก ์ผ๊ธ ๊ฐ์ฒด์ ๋๋ค. // 1. ํจ์๋ ๋ฌด๋ช ๋ฆฌํฐ๋ด๋ก ์์ฑ ๊ฐ๋ฅ // 2. ํจ์๋ ๋ณ์์ ์ ์ฅํ ์ ์์ // ๋ฐํ์(ํ ๋น ๋จ๊ณ)์ ํจ์ ๋ฆฌํฐ๋ด์ด ํ๊ฐ๋์ด ํจ์ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ ๋ณ์์ ํ ๋น๋จ const increase = function (num) { return ++num; }; const decrease = function (num) { return --num; }; // 2. ํจ์๋ ๊ฐ์ฒด..
- Total
- Today
- Yesterday
- JavaScript
- TDD
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ
- ํ๋กํ ์ฝ
- Baekjoon
- ํ๋กํผํฐ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- ์ด์์ฒด์
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ํฌํฌ์ธํฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋คํธ์ํฌ
- ๋ฐฑ์ค javascript
- ์ฝ๋ฉํ ์คํธ
- ๋ ์์ปฌ ํ๊ฒฝ
- git
- ๋ฐฑ์ค
- ๋ฐฑ์ค node.js
- map
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์นด์นด์ค ์ธํด
- ์ ์ญ ๋ณ์
- ํ๋ก๊ทธ๋๋จธ์ค
- http
- ์ด๋ถํ์
- fp
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |