- ๋ฐฐ์ด ํฌ๊ธฐ๋ ๋ฏธ๋ฆฌ ์ ํ์ง ์๊ณ ๋ ์ ์ธํ ์ ์์ผ๋ฉฐ ์ํ๋ ๊ฐ์ ์ถ๊ฐํ๋ฉด ๋๋ค
- ๋ฐฐ์ด ๊ฐ์ delete ์ฐ์ฐ์๋ฅผ ์ ์ฉํ๋ฉด slot์ ์ ๊ฑฐํ ์ ์์ง๋ง, ๋ง์ง๋ง ์์๊น์ง ์ ๊ฑฐํด๋ length ํ๋กํผํฐ ๊ฐ์ ๋ฐ๋์ง ์๋๋ค
- ๋ฐฐ์ด์ ๋ฌธ์์ด ํ์ ์ ํค/ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ ๊ถ์ฅํ์ง ์๋๋ค
- ์ ์ฌ๋ฐฐ์ด ๊ฐ : ์ซ์ ์ธ๋ฑ์ค๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ๋ค์ ์งํฉ
- ์ ์ฌ๋ฐฐ์ด์ ๊ฐ์ ์ง์ง ๋ฐฐ์ด๋ก ๋ฐ๊ฟ ๋
- indexOf(), concat(), forEach() ๋ฑ
- Array.from() : ES6
- ๋ฌธ์์ด๊ณผ ๋ฌธ์ ๋ฐฐ์ด์ ๊ฐ์ง ์๋ค
- ๋ฌธ์์ด์ ๋ถ๋ฉด ๊ฐ(Immutable) / ๋ฐฐ์ด์ ๊ฐ๋ณ ๊ฐ(mutable)
var a = "foo"; a[1] = "o"; // ์ฌ์ฉ๊ฐ๋ฅํ๋ ์ด์ ์๋ ์ค๋ฅ a.charAt(1); // ์ณ์ ์ ๊ทผ๋ฒ
- ๋ฌธ์์ด์ ๋ถ๋ณ ๊ฐ์ด๋ฏ๋ก ๋ฌธ์์ด ๋ฉ์๋๋ ๊ทธ ๋ด์ฉ์ ๋ฐ๋ก ๋ณ๊ฒฝํ์ง ์๊ณ ํญ์ ์๋ก์ด ๋ฌธ์์ด์ ์์ฑํ ํ ๋ฐํ
- ๋ฐ๋ฉด ๋๋ถ๋ถ์ ๋ฐฐ์ด ๋ฉ์๋๋ ๊ทธ ์๋ฆฌ์์ ๊ณง๋ฐ๋ก ์์๋ฅผ ์์
- ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋ ์ ์ฉํ ๋๋ถ๋ถ์ ๋ฉ์๋๋ ์ฌ์ค์ ๋ฌธ์์ด์ ์ธ ์ ์์ง๋ง, ๋ฌธ์์ด์ ๋ํด ๋ถ๋ณ ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ๋น๋ ค ์ธ ์ ์๋ค
- ex
var a = "foo"; a.reverse; // undefined. reverse() ๋ฌธ์์ด์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง์ ๊ฐ๋ณ ๋ฉ์๋
- ๋ฌธ์์ด์ ๋ฐ๊พธ๊ณ ์ํ๋ ์์
์ ์ํํ ํ ๋ค์ ๋ฌธ์์ด๋ก ๋๋๋ฆฌ๋ hack
var c = a // 'a'๋ฅผ ๋ฌธ์์ ๋ฐฐ์ด๋ก ๋ถํ .split("") // ๋ฌธ์ ๋ฐฐ์ด์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง๋๋ค .reverse() // ๋ฌธ์ ๋ฐฐ์ด์ ํฉ์ณ ๋ค์ ๋ฌธ์์ด๋ก ๋๋๋ฆฐ๋ค .join(""); c; // "oof"
- Nan : ์๊ธฐ์์ ๊ณผ๋ ๋๋ฑํ์ง ์์
- Nan ๋น๊ต ๋ฐฉ๋ฒ
- isNan() ์ธ์๊ฐ์ด ์ซ์์ธ์ง ์ฌ๋ถ๋ฅผ ํ๊ฐ -> ๊ฒฐ๊ณผ ๋ถ์ ํ
- ES6 -> Number.isNan()
- Nan ๋น๊ต ๋ฐฉ๋ฒ
- 0 : 0 / -0์ด ์กด์ฌ
- Object.is() -> ES6
- ==, ===๊ฐ ์์ ํ๋ค๋ฉด Object.is()๋ ์ฌ์ฉํ์ง ์๋ ํธ์ด ์ข๋ค
-
์ด๋ค ๋ณ์๊ฐ ๋ค๋ฅธ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค
-
๋ ํผ๋ฐ์ค
- ๊ณต์ ๋ ๊ฐ์ ๊ฐ๋ฆฌํด
- ์๋ก ๋ค๋ฅธ n๊ฐ์ ๋ ํผ๋ฐ์ค๊ฐ ์๋ค๋ฉด ์ด๋ค์ ์ ๋ง๋ค ํญ์ ๊ณต์ ๋ ๋จ์ผ ๊ฐ์ ๊ฐ๋ณ์ ์ผ๋ก ์ฐธ์กฐํ๋ค
-
์๋ฐ์คํฌ๋ฆฝํธ์๋ ๊ฐ ๋๋ ๋ ํผ๋ฐ์ค์ ํ ๋น ๋ฐ ์ ๋ฌ์ ์ ์ดํ๋ ๊ตฌ๋ฌธ ์์๊ฐ ์ ํ ์๋ค
-
๊ฐ์ ํ์ ๋ง์ผ๋ก ๊ฐ-๋ณต์ฌ, ๋ ํผ๋ฐ์ค-๋ณต์ฌ ๋ ์ค ํ์ชฝ์ด ๊ฒฐ์ ๋๋ค
var a = 2; var b = a; // 'b'๋ ์ธ์ ๋ 'a'์์ ๊ฐ์ ๋ณต์ฌํ๋ค b++; a; // 2 b; // 3 // a์๋์ด ๊ฐ์ ์ด๊ธฐ ์ฌ๋ณธ์ด ๋ค์ด๊ฐ๊ณ , b์๋ ๋๋ค๋ฅธ ์ฌ๋ณธ. b๋ฅผ ๋ฐ๊ฟ์ผ๋ก์จ a๊น์ง ๋ฐ๊ฟ ์ ์์ var c = [1,2,3]; var d = c; // 'd'๋ ๊ณต์ ๋ '[1,2,3]'๊ฐ์ ๋ ํผ๋ฐ์ค์ด๋ค d.push(4); c; // [1,2,3,4] d; // [1,2,3,4] /* c์ d๋ ํฉ์ฑ๊ฐ์ด์ ๋์ผํ ๊ณต์ ๊ฐ [1,2,3]์ ๋ํ ๊ฐ๋ณ ๋ ํผ๋ฐ์ค .push()๋ก ๊ณต์ ํ ๋ฐฐ์ด ๊ฐ ๋ณ๊ฒฝ
-
null, undefined, string, number, boolean, symbol(ES6)์ ๋จ์ ๊ฐ(์ค์นผ๋ผ ์์ ๊ฐ scalar primitives)์ ์ธ์ ๋ ๊ฐ-๋ณต์ฌ ๋ฐฉ์์ผ๋ก ํ ๋น/์ ๋ฌ
-
๊ฐ์ฒด(๋ฐฐ์ด๊ณผ ๋ฐ์ฑ๋ ๊ฐ์ฒด ๋ํผ ์ ์ฒด)๋ ํจ์ ๋ฑ ํฉ์ฑ ๊ฐ(compound values)์ ํ ๋น/์ ๋ฌ์ด ๋ฐ๋์ ๋ ํผ๋ฐ์ค ์ฌ๋ณธ์ ์์ฑ
-
๋ ํผ๋ฐ์ค๋ ๋ณ์๊ฐ ์๋ ๊ฐ ์์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ฏ๋ก A๋ ํผ๋ฐ์ค๋ก B๋ ํผ๋ฐ์ค๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ ๋ณ๊ฒฝํ ์๋ ์๋ค
-
slice() : ์ธ์์์ด slice()๋ฅผ ํธ์ถํ๋ฉด ์ ํ ์๋ก์ด ๋ฐฐ์ด์ ์ฌ๋ณธ์ ๋ง๋ ๋ค(์์ ๋ณต์ฌ shallow copy)
-
์ค์นผ๋ผ ์์ ๊ฐ์ ๋ ํผ๋ฐ์ค์ฒ๋ผ ๋ฐ๋ ๊ฐ์ด ๋ฐ๋ก๋ฐ๋ก ๋ฐ์๋๋๋ก ๋๊ธฐ๋ ค๋ฉด ์์ ๊ฐ์ ๋ค๋ฅธ ํฉ์ฑ ๊ฐ(๊ฐ์ฒด, ๋ฐฐ์ด) ๋ฑ์ผ๋ก ๊ฐ์ธ์ผํ๋ค
-
์ค์นผ๋ผ ์์ ๊ฐ์ ๋ ํผ๋ฐ์ค ํํ๋ก ๋๊ธฐ๋ ค๋ฉด Number ๊ฐ์ฒด ๋ํผ๋ก ์์๊ฐ์ ๋ฐ์ฑํ๋ฉด ๋๋ค
-
๋จ์ ์ค์นผ๋ผ ์์ ๊ฐ์ ๊ฐ-๋ณต์ฌ
-
ํฉ์ฑ ๊ฐ์ ๋ ํผ๋ฐ์ค-๋ณต์ฌ