์์ ๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต
- ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ
- ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ
- ์์ ๊ฐ์ ๋ณ์์ ํ ๋น ํ๋ฉด ์ค์ ๊ฐ์ด ์ ์ฅ
- ๊ฐ์ฒด๋ฅผ ๋ณ์์ ํ ๋นํ๋ฉด ์ฐธ์กฐ ๊ฐ์ด ์ ์ฅ์์๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋น ์ ์์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ ๋ฉ๋๋ค. ์ด๋ฅผ ๊ฐ์ ์ํ ์ ๋ฌ(
pass by value
)์ด๋ผ๊ณ ํฉ๋๋ค.
๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ **์ฐธ์กฐ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ ๋ฉ๋๋ค. ์ด๋ฅผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ(pass by value
) ๋ผ๊ณ ํฉ๋๋ค.
์์ ๊ฐ
๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ
- ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ ํ ๊ฐ์ผ๋ก ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅ
- ์ฌํ ๋น ์ ์ด์ ์ ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ ๋ณ์๊ฐ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํจ
const
๋ ๋ณ์์ ์ฌํ ๋น์ ๋ง๋ ๊ฒ, ์์ ๊ฐ ์์ฒด๋ ๋ณ๊ฒฝ๋๋ ๊ฒ ์๋๋ฌธ์์ด๊ณผ ๋ถ๋ณ์ฑ
- ์์ ํ์
๋ณ๋ก ํ๋ณดํด์ผ ํ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ ธ ์๋ค.
- ๋ฌธ์์ด ์์๊ฐ ๊ฒฝ์ฐ ๋ช๊ฐ์ ๋ฌธ์๋ก ์ด๋ฃจ์ด ์ก๋๋์ ๋ฐ๋ผ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋จ
- ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฌธ์์ด์ ์์ ํ์
์ผ๋ก ์ ๊ณต(
c
๋ ๋ฌธ์์ ๋ฐฐ์ด๋ก ์ฒ๋ฆฌ java
๋ String๊ฐ์ฒด๋ก ์ฒ๋ฆฌ)
- ๋ฌธ์์ด์ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด ์ด๋ฉด์ ์ดํฐ๋ฌ๋ธ ์ด๋ฏ๋ก ๋ฐฐ์ด๊ณผ ์ ์ฌํ๊ฒ ๊ฐ ๋ฌธ์์ ์ ๊ทผ ํ ์ ์๋ค.
var str = 'string';
// ๋ฌธ์์ด์ ์ ์ฌ ๋ฐฐ์ด์ด๋ฏ๋ก ๋ฐฐ์ด๊ณผ ์ ์ฌํ๊ฒ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๊ฐ ๋ฌธ์์ ์ ๊ทผํ ์ ์๋ค.
console.log(str[0]); // s
// ์์ ๊ฐ์ธ ๋ฌธ์์ด์ด ๊ฐ์ฒด์ฒ๋ผ ๋์ํ๋ค.
console.log(str.length); // 6
console.log(str.toUpperCase()); // STRING
str[0] ='S' // ์์ฑ๋ ๋ฌธ์์ด ์ผ๋ถ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฑด ๋ฐ์๋์ง ์๋๋ค (์์๊ฐ์ ๋ถ๋ณ์ฑ ๊ฐ๊ธฐ ๋๋ฌธ)
๊ฐ์ ์ํ ์ ๋ฌ
- ๋ณ์์ ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ํ ๋นํ๋ฉด ๋ณ์์ ํ ๋น๋ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ ๋๋ค
- ๋ณต์ฌ๋ ์์ ๊ฐ๋ง ๊ฐ์ ๋ฟ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๋ณ๊ฐ์ ๊ฐ์ผ๋ก ์กด์ฌ
- ์๊ฒฉํ๊ฒ ๋ฐ์ง๋ฉด ๋ณ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ ์ ๋ฌ๋จ
๊ฐ์ฒด
- ๊ฐ์ฒด๋ ์์ ๊ฐ์ฒ๋ผ ์ฌ์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณด ํด ๋ ์์๋ค. (๋์ ์ผ๋ก ์ถ๊ฐ๋ ๊ฐ๋ฅ)
- ์์ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ๊ฐ์ฒด์ ๊ด๋ฆฌ ๋ฐฉ์์ด ๋ณต์ก
- ๋๋ถ๋ถ์
JavaScript Engine
์ ํด์ ํ
์ด๋ธ๊ณผ ์ ์ฌํ์ง๋ง ๋์ ์ฑ๋ฅ์ ์ํด ์ผ๋ฐ์ ์ธ ํด์ ํ
์ด๋ธ๋ณด๋ค ๋ ๋์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฒด ๊ตฌํ.
- ํ๋กํผํฐ ์ ๊ทผ์ ์ํด ํ๋ ํด๋์ค ๋ผ๋ ๋ฐฉ์ ์ฌ์ฉ
๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ
- ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ค.
- ๊ฐ์ฒด๋ฅผ ํ ๋นํ๊ณ ์๋ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผํ๋ฉด ์ฐธ์กฐ๊ฐ(
reference value
)์ ์ ๊ทผํ ์ ์๋ค.
- ์ฐธ์กฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์ ๊ทธ ์์ฒด, ์ฐธ์กฐ ๊ฐ์ ํตํด ์ค์ ๊ฐ์ฒด์ ์ ๊ทผํ๋ค.
- ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์๋ ์ฌํ ๋น ์์ด ๊ฐ์ฒด๋ฅผ ์ง์ ๋ณ๊ฒฝํ ์ ์๋ค.
- ํ๋กํผํฐ๋ฅผ ๋์ ์ถ๊ฐ, ๊ฐฑ์ , ์ญ์ ๊ฐ๋ฅํ ๊ฒ๋ ๋ณ๊ฒฝ๊ฐ๋ฅํ ๊ฐ์ด๊ธฐ ๋๋ฌธ
- ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์์ ์ฐธ์กฐ ๊ฐ(๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ์ ๋ ๋์ค๋ ์ฐธ์กฐ ๊ฐ)์ ๋ณ๊ฒฝ๋์ง x
- ๊ตฌ์กฐ์ ๋จ์ : ์ฌ๋ฌ ๊ฐ์ ์๋ณ์๊ฐ ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ ์ ์๋ค.
์ฐธ์กฐ์ ์ํ ์ ๋ฌ
- ์์ ๋ณต์ฌ vs ๊น์ ๋ณต์ฌ
- ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ๋ก ์์ฑ๋ ๊ฐ์ฒด๋ ๋ชจ๋ ์๋ณธ๊ณผ ๋ค๋ฅธ ๊ฐ์ฒด
ํ์ง๋ง ๊น์ ๋ณต์ฌ๋ ๊ฐ์ฒด์ ์ค์ฒฉ๋์ด์๋ ๊ฐ์ฒด๊น์ง ๋ชจ๋ ๋ณต์ฌํด์ ์์ ๊ฐ ์ฒ๋ผ ์์ ํ ๋ณต์ฌ๋ณธ์ ๋ง๋ฌ
- ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค. ์ด๋ฅผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ ์ด๋ผ๊ณ ํ๋ค.
- ์๊ฒฉํ๊ฒ ๊ตฌ๋ถํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ ๋ณต์ฌํด์ ์ ๋ฌํ๋ฏ๋ก ๊ฐ์ ์ํ ์ ๋ฌ๊ณผ ๋์ผ
- ๋ค๋ง ๋ณ์์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ด ์ฐธ์กฐ ๊ฐ ์ด๋ผ๋ฉด ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ฏ๋ก ** ์ฐธ์กฐ์ ์ํ ์ ๋ฌ ** ์ด๋ผ ํํ
๋๊ธ