ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ๋ณ์
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 13. 18:57๋ณ์๋?
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฒ๋ฆฌํ๊ณ ์ถ๋ ฅํฉ๋๋ค. ๋ณ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํต์ฌ ๊ฐ๋ ์ผ๋ก, ์ฌ๋๊ณผ ๋ค๋ฅด๊ฒ ์ปดํจํฐ๋ CPU๋ฅผ ์ฌ์ฉํด ์ฐ์ฐ์ ํ๊ณ , *๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํฉ๋๋ค. ๊ฐ ์ ์ ๊ณ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๊ฒ ๋๊ณ CPU๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์์ ์ํ๋ ๊ฐ์ ์ฝ์ด ๋ค์ฌ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํตํด ๊ฐ์ ์ง์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์์ ํ์ง ์์์ ๋ณ์๋ผ๋ ๋งค์ปค๋์ฆ์ ์ด์ฉํ๊ฒ ๋ฉ๋๋ค.
*๋ฉ๋ชจ๋ฆฌ : ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์งํฉ์ฒด. ์ 1๊ฐ = 1๋ฐ์ดํธ(8๋นํธ)
๋ณ์(variable)๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋๋ค. ์ฆ, ๊ฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ง์ ์ธ ์ด๋ฆ์ ๋๋ค.
// ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ์๋จ
var userId = 1;
var userName = 'Kim'
// ๊ฐ์ฒด๋ ๋ฐฐ์ด๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๊ทธ๋ฃนํํด์ ์ฌ์ฉ ๊ฐ๋ฅ
var user = { id: 1, name: 'Kim' };
var users = [
{ id: 1, name: 'Kim' },
{ id: 2, name: 'Lee' };
];
- ๋ณ์ ์ด๋ฆ : ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๊ฐ์ ์๋ณํ ์ ์๋ ๊ณ ์ ํ ์ด๋ฆ ex ) userId
- ๋ณ์ ๊ฐ : ๋ณ์์ ์ ์ฅ๋ ๊ฐ ex) 1
- ํ ๋น(๋์ , ์ ์ฅ) : ๋ณ์์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ
- ์ฐธ์กฐ : ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด ๋ค์ด๋ ๊ฒ
๋ณ์ ์ด๋ฆ์ ์ฌ์ฉํด ์ฐธ์กฐ๋ฅผ ์์ฒญํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์ ์ด๋ฆ๊ณผ ๋งคํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผํด์ ์ ์ฅ๋ ๊ฐ์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค. ๋ณ์ ์ด๋ฆ์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ , ๋ช ํํ ๋ค์ด๋ฐ์ ์ฝ๋ ์ดํด๋ฅผ ๋๊ณ ํ์ ๊ณผ ํ์ง ํฅ์์๋ ๋์์ ์ฃผ๋ ์ค์ํ ์์์ ๋๋ค.
์๋ณ์
๋ณ์๋ ์๋ณ์๋ผ๊ณ ๋ ํ๋๋ฐ, ์๋ณ์๋ ์ด๋ค ๊ฐ์ ๊ตฌ๋ณํด์ ์๋ณํ ์ ์๋ ๊ณ ์ ํ ์ด๋ฆ์ ๋งํฉ๋๋ค. ์๋ณ์๋ ๊ฐ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๊ธฐ์ตํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ถ์ธ ์ด๋ฆ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ณ์ ์ด๋ฆ ๋ฟ๋ง ์๋๋ผ ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ์ด๋ฆ์ ๋ชจ๋ ์๋ณ์์ ๋๋ค. ๋ํ ์ด๋ฅผ ์ ์ธํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ณ์์ ์กด์ฌ๋ฅผ ์๋ ค ์ฌ์ฉํฉ๋๋ค.
๋ณ์ ์ ์ธ
๋ณ์ ์ ์ธ์ด๋ ๋ณ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ณ์ ์ด๋ฆ๊ณผ ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ฅผ ์ฐ๊ฒฐํด์ ๊ฐ์ด *ํด์ ๋๊ธฐ ์ ๊น์ง ์ฌ์ฉํ๊ฒ ํฉ๋๋ค.
*์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฐฉ์์ ๋ํด ์์๋ณด๋ ค๋ฉด ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://j-su2.tistory.com/24?category=1032243
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์ ์ ์ธ ๋จ๊ณ
- ์ ์ธ ๋จ๊ณ : ๋ณ์ ์ด๋ฆ์ ๋ฑ๋กํด์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์์ ์กด์ฌ๋ฅผ ์๋ฆผ
- *์ด๊ธฐํ ๋จ๊ณ : ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ์๋ฌต์ ์ผ๋ก undefined๋ฅผ ํ ๋นํด ์ด๊ธฐํ
๋ณ์๋ฅผ ์ ์ธํ ๋๋ var, let, const๋ผ๋ *ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ, ์ ์ธ ํ ์ด๊ธฐํ๋จ๊ณ๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด undefined๋ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ํ์ ๊ฐ์ด ์ ์ฅ๋ฉ๋๋ค. ๋ง์ฝ, ์ ์ธํ์ง ์์ ์๋ณ์์ ์ ๊ทผํ๋ฉด ์ฐธ์กฐ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
var score; // undefined
score = 1; // 1
*์ด๊ธฐํ : ๋ณ์๊ฐ ์ ์ธ๋ ์ดํ ์ต์ด๋ก ๊ฐ์ ํ ๋นํ๋ ๊ฒ
*ํค์๋ : ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ํํ ๋์์ ๊ท์ ํ ์ผ์ข ์ ๋ช ๋ น์ด
๋ณ์ ์ ์ธ์ ์คํ ์์ ๊ณผ ๋ณ์ ํธ์ด์คํ
console.log(score); // undefined
var score;
์์ ๊ฐ์ ์ฝ๋๊ฐ ์์๋ score๋ ์ฐธ์กฐ ์๋ฌ๊ฐ ๋์์ผํ ๊ฒ ๊ฐ์ง๋ง undefined๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ด๋ ๋ณ์ ํธ์ด์คํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ณ์ ์ ์ธ์ ์์ค์ฝ๋๊ฐ ํ ์ค์ฉ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ์์ , ์ฆ ๋ฐํ์์ด ์๋๋ผ ๊ทธ ์ด์ ๋จ๊ณ์์ ๋จผ์ ์คํ๋ฉ๋๋ค.
์ด์ฒ๋ผ ๋ณ์ ์ ์ธ๋ฌธ์ด ์ฝ๋์ ์ ๋๋ก ๋์ด ์ฌ๋ ค์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ณ ์ ํน์ง์ ๋ณ์ ํธ์ด์คํ ์ด๋ผ ํฉ๋๋ค. ๋ณ์ ์ ์ธ ๋ฟ๋ง ์๋๋ผ var, let, const, function, function*, class ํค์๋๋ฅผ ์ฌ์ฉํ ๋ชจ๋ ์๋ณ์๋ ํธ์ด์คํ ๋ฉ๋๋ค.
๊ฐ์ ํ ๋น๊ณผ ์ฌํ ๋น
๋ณ์์ ๊ฐ์ ํ ๋นํ ๋๋ ํ ๋น ์ฐ์ฐ์ =๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๋ณ์ ์ ์ธ๊ณผ ๊ฐ์ ํ ๋น์ ํ๋์ ๋ฌธ์ผ๋ก ๋จ์ถ ํํํ ์ ์์ง๋ง ๋จ์ถํ์ฌ๋ ๋ณ์ ์ ์ธ๊ณผ ๊ฐ์ ํ ๋น์ 2๊ฐ์ ๋ฌธ์ผ๋ก ๋๋์ด ๊ฐ๊ฐ ์คํํฉ๋๋ค.
console.log(score); //undefined
var score = 80;
console.log(score); // 80
- ๋ณ์ ์ ์ธ : ๋ฐํ์ ์ด์ ์ ๋จผ์ ์คํ
- ๊ฐ์ ํ ๋น : ๋ฐํ์์ ์คํ
๊ฐ์ ์ฌํ ๋น์ ์ด๋ฏธ ๊ฐ์ด ํ ๋น๋ ๋ณ์์ ์๋ก์ด ๊ฐ์ ๋ค์ ํ ๋นํ๋ ๊ฒ์ ๋๋ค. varํค์๋๋ ๊ฐ์ ์ฌํ ๋น ํ ์ ์์ง๋ง, const๋ฅผ ์ด์ฉํ๋ค๋ฉด ๊ฐ์ ์ฌํ ๋นํ ์ ์์ต๋๋ค.
var score = 80; // ๋ณ์ ์ ์ธ๊ณผ ํ ๋น
score = 90; // ์ฌํ ๋น
const foo = 10;
foo = 100; // TypeError๊ฐ ๋ฐ์!!
- ์์ : ๊ฐ์ ์ฌํ ๋นํ ์ ์์ด์ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์. Const ํค์๋๋ฅผ ์ฌ์ฉ.
์๋ณ์ ๋ค์ด๋ฐ ๊ท์น
- ์๋ณ์๋ ํน์๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์, ์ซ์, ์ธ๋์ค์ฝ์ด(_), ๋ฌ๋ฌ ๊ธฐํธ($)๋ฅผ ํฌํจํ ์ ์์
- ๋จ, ์๋ณ์๋ ํน์๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์, ์ธ๋์ค์ฝ์ด(_), ๋ฌ๋ฌ ๊ธฐํธ($)๋ก ์์ํด์ผ ํจ. (์ซ์๋ก ์์X)
- *์์ฝ์ด๋ ์๋ณ์๋ก ์ฌ์ฉํ ์ ์์
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํจ
- ๋ณ์์ ๋ชฉ์ ์ ์ ์ ์๋๋ก ์๋ฏธ๋ฅผ ๋ช ํํ ํํํด์ผํจ
*๋ค์ด๋ฐ ์ปจ๋ฒค์ : ํ๋ ์ด์์ ์๋จ์ด๋ก ๊ตฌ์ฑ๋ ์๋ณ์๋ฅผ ๋ง๋ค ๋ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํ ๋ช ๋ช ๊ท์น์ผ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์นด๋ฉ ์ผ์ด์ค๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ex) firstName
[์ถ์ฒ] ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive
'JavaScript > ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์ ์ด๋ฌธ (0) | 2022.07.15 |
---|---|
[JavaScript] ์ฐ์ฐ์ (0) | 2022.07.15 |
[JavaScript] ๋ฐ์ดํฐ ํ์ (0) | 2022.07.14 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ํ๊ฒฝ (0) | 2022.07.12 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ๋? (0) | 2022.07.11 |
- Total
- Today
- Yesterday
- ๋ฐฑ์ค
- ๋์์ธ ํจํด
- ๋ฐฑ์ค node.js
- JavaScript
- fp
- http
- ์นด์นด์ค ์ธํด
- ์ด๋ถํ์
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- TDD
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋กํ ์ฝ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ ์์ปฌ ํ๊ฒฝ
- ์ฝ๋ฉํ ์คํธ
- ์ด์์ฒด์
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- Baekjoon
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋กํผํฐ
- map
- ๋ฐฑ์ค javascript
- ๋คํธ์ํฌ
- ํฌํฌ์ธํฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์๋ฐ
- ์ ์ญ ๋ณ์
- git
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |