๐ ์๋ฐ์คํฌ๋ฆฝํธ ์์๊ฐ๊ณผ ์ฐธ์กฐ๊ฐ
์์๊ฐ | ์ฐธ์กฐ๊ฐ | |
ํน์ง | ๋ฐ์ดํฐ ๋ณต์ฌ๊ฐ ์ผ์ด๋ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ก ํ๋ณดํ์ฌ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ ์ ์ฅ | ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์์น(์ฃผ์)์ ๋ํ ๊ฐ์ ์ ์ธ ์ฐธ์กฐ๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ |
mutability | immutable | mutable |
์์ | string number bigint boolean undefined symbol |
๊ทธ ์ธ(array, object, function..) |
๐ ์์
- myArray์ ๋ฐ์ด์ฒ ์์ฒด๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(Heap)์ ์ ์ฅ๋๋ฉฐ, ๋ณ์์ ํ ๋น ์ ๋ฐ์ดํฐ์ ๋ํ ์ฃผ์(ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ)์ด ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋ณ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ด์ฉํด์ ๋ณ์์ ๊ฐ์ ์ ๊ทผ
- ๋ณ์์ ๋ณต์ฌ๋ ์์ ์ ์ฐธ์กฐ ์ฌ๋ถ๋ฅผ ์ ๊ณ ๋ คํด์ผํจ
๐ ์์๋ณต์ฌ VS ๊น์๋ณต์ฌ
์์๋ณต์ฌ
- ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋ ์๋๊ฐ๊ณผ ๋ณต์ฌ๋ ๊ฐ์ด ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์.
- ex. ์ฐธ์กฐ๊ฐ
const a = {number: 1};
let b = a;
b.number = 2
console.log(a); // {number: 2}
console.log(b); // {number: 2}
- ๋ฐฉ๋ฒ : Object.assign(), ์ ๊ฐ์ฐ์ฐ์(...)
๊น์๋ณต์ฌ
- ๊ฐ์ ๋ณต์ฌํ ๋ ๋ณต์ฌ๋ ๊ฐ์ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ๊ณผ ๋ณต์ฌ๋ ๊ฐ์ด ์๋ก ์ํฅ์ ๋ฏธ์น์ง ์์
- ex. ์์๊ฐ
const a = 1;
let b = a;
b = 2
console.log(a); //1
console.log(b); //2
- ๋ฐฉ๋ฒ : ์ฌ๊ทํจ์, JSON.stringfy(), lodash๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ฐธ๊ณ
'CS ๊ณต๋ถ - front' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์น/์ต์ ํ]Image Lazy Loading (2) | 2023.02.27 |
---|---|
[๋ฆฌ์กํธ] flux ํจํด๊ณผ, ๋ฏธ๋ค์จ์ด ์ข ๋ฅ ๋ฐ ์ฅ๋จ์ (0) | 2023.02.23 |
[React] ๊ฐ์๋ (0) | 2023.02.15 |
[JS] var vs let vs const (0) | 2023.02.15 |
[React] ํจ์ํ๊ณผ ํด๋์คํ์ ์ฅ๋จ์ ๋น๊ต (0) | 2023.02.15 |