๊ฐ
- JS์ ๊ฐ๋ค์ ๋ค๋ฅธ ์ธ์ด, ํนํ C๋ JAVA์ ์ข ๋ค๋ฅด๊ฒ ๋์ํ๋ค.
- ๋ฐฐ์ด, ๋ฌธ์์ด๋ฑ์์ ๊ทธ ์ฐจ์ด๋ฅผ ์์๋ณธ๋ค.
๋ฐฐ์ด
์์ : JS์ ๋ฐฐ์ด์ ๋ค์ํ ํ์ ์ ๊ฐ์ ์์๋ก ๊ฐ์ง ์ ์๋ค.
- ์ฌ์ง์ด ์๋์ ๊ฐ์ด ๊ตฌ๋ฉ๋ ๋ฐฐ์ด์ ๋ง๋๋๊ฒ๋ ๊ฐ๋ฅํ๋ค
์์ : ๊ตฌ๋ฉ๋ ๋ฐฐ์ด
- ๋์์ด ์๋นํ ํน์ดํ๋ฐ, ์ธ๋ฑ์ค 100 ์์น์ ์์๋ฅผ ์ถ๊ฐํ๋๊ฒ๋ ๊ฐ๋ฅํ๋ฐ, ์ด๋ length๋ฅผ ์ฐ์ด๋ณด๋ฉด 101๋ก ๋์จ๋ค.
์ซ์ ์ธ๋ฑ์ค ๋์ ๋ฌธ์์ด์ ์ฌ์ฉํ๋๊ฒ๋ ๊ฐ๋ฅํ๋ค.
- ์ด๋ ๋ฐฐ์ด ์์ฒด๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์, Key/Property ๋ฌธ์์ด์ ์ถ๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋๊ธด ํ์ง๋ง, length๋ ์ฆ๊ฐํ์ง ์๋๋ค.
์์ : ์ ์๋ฅผ ๋ฌธ์์ด๋ก ๊ฐ์ผ ๊ฒฝ์ฐ, number ํ์ ์ ์ฌ์ฉํ ๊ฒ์ผ๋ก ๋์ํ๋ค.
์ ์ฌ ๋ฐฐ์ด
- Array๊ฐ Object์ ํ์ํ์ ์ด๊ธด ํ์ง๋ง, ์ด์จํผ ๋ฐฐ์ด์ ๋ฐฐ์ด์ด๋ค.
- ๊ทผ๋ฐ, JS์์ ๋ฐฐ์ด์ด ์๋๋ฐ ๋ฐฐ์ด์ฒ๋ผ ์๊ธด ๊ฐ์ฒด๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค.
์ด๋ฌํ ๊ฐ์ฒด๋ฅผ์ ์ฌ ๋ฐฐ์ด์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค
์์ : ์ ์ฌ ๋ฐฐ์ด๊ณผ ์ผ๋ฐ ๋ฐฐ์ด์ ์ฐจ์ด์
- ๋ฐฐ์ด์ฒ๋ผ ์๊ฒผ์ ๋ฟ, ๋ฐฐ์ด์ ์๋๊ธฐ์ Array๊ฐ ๊ฐ์ง ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค.
- ์ ์ฌ๋ฐฐ์ด์ ๊ทธ๋ฅ ์ ์๋ฅผ Key๋ก ๊ฐ์ง๋ ๊ฐ์ฒด์ผ ๋ฟ, Array๊ฐ ์๋๋ค.
- ์ ์ฌ๋ฐฐ์ด์ Arrayํ์ ์ ๋ฐฐ์ด๋ก ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด Array.from ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ฌธ์์ด
- ๋ค๋ฅธ ์ธ์ด์ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ๋ฌธ์์ ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ค์ ๊ตฌํ์ด ์ด๋ค์ง ๋ชจ๋ฅด๋, ์ฌ์ฉํจ์ ์์ด์ ๋ฌธ์๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
- JS์ ๋ฌธ์์ด์ ๋ฐฐ์ด์ฒ๋ผ indexOf, concat, length๋ฑ์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๊ธด ํ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํด์ ๋ฐฐ์ด์ ์๋๋ค.
๋ฌธ์์ด์ ๋ถ๋ณ๊ฐ์ด๋ค
- ๋ฌธ์ ๋ฐฐ์ด์ด๋ผ๋ฉด, ๋ฐฐ์ด ์์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ด์ผ ํ๋ค.
- ํ์ง๋ง ๋ฌธ์์ด์ ๋ถ๋ณ๊ฐ์ด๊ธฐ์, ํน์ ์์น์ ๋ฌธ์๋ง ๋ฐ๊พธ๋๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค. ์ ๋ฌธ์์ด์ ๋ง๋ค์ด์ผ ํ๋ค.
๋ฌธ์์ด์ ๋ค์ง์ผ๋ ค๋ฉด?
- ๋ฐฐ์ด์ ๊ฒฝ์ฐ reverse๋ผ๋ ๋ฉ์๋๊ฐ ์์ด์, ๋ฌธ์ ๋ฐฐ์ด์ด์๋ค๋ฉด ๊ทธ๋ฅ reverse๋ง ํธ์ถํ๋ฉด ๋์ง๋ง, ๋ฌธ์์ด์ ๊ทธ๋ฐ๊ฒ ์๋ค.
- ์ฌ๋ฌ ๊ตฌํ๋ฐฉ๋ฒ์ด ์กด์ฌํ ์ ์๊ฒ ๋๋ฐ, ๋ฌธ์์ด์ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ reverse๋ฅผ ํธ์ถํ๊ณ , ๋ค์ ๋ฌธ์์ด๋ก ํฉ์น๋ ๋ฐฉ๋ฒ์ ๊ตฌํํด๋ณด์
์ซ์
- ์ซ์์ ์ ํ๋ณ๋ก ๋ค์ํ ํ์ (float, int, long, double, ...)์ ๊ฐ์ง๋ ๋ค๋ฅธ ์ธ์ด์ ๋ฌ๋ฆฌ, JS๋ number ํ๋๋ฟ์ด๋ค.
- ๊ทธ๋์ JS๋ ์ค์๊ฑด ์ ์๊ฑด ํ์ ์ด ๊ฐ๋ค.
๋จธ์ ์ก์ค๋ก : ์์ ์์๊ฐ์์ ๋ฐ์ํ๋ ์ค์ฐจ
- ์ด์ง ๋ถ๋ ์์์ ์ผ๋ก ๋ํ๋ธ ์์๋ ์๋ ์์ ์ผ์นํ์ง ์์ผ๋ฏ๋ก, ์ด๋ฌํ ์๋ฅผ ๊ฐ์ง๊ณ ๊ณ์ฐํ ๊ฒฐ๊ณผ ๋ํ ์๋ ์์ ์ผ์นํ์ง ์๋๋ค.
- ์ด๋ ๊ฒ ๋ฐ์ํ ์ค์ฐจ๋ฅผ ๋จธ์ ์ก์ค๋ก ์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, Number.EPSILON์ผ๋ก ๋ฏธ๋ฆฌ ์ ์๋์ด์๋ค.
ํํ ๊ฐ๋ฅํ ์์ ๋ฒ์์ ์์ ํ ์ ์ ๋ฒ์
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํธ ์๊ฐ ์ ํ๋ ์ด์, ํํ ๊ฐ๋ฅํ ์์ ๋ฒ์๋ ์กด์ฌํ๋ค.
- Number.MAX_VALUE๋ ๋ถ๋ ์์์ ์ซ์์ ์ต๋๊ฐ, Number.MIN_VALUE๋ ์์๊ฐ ์๋๋ฉด์ 0์ ๊ฐ๊น์ด ์ซ์์ด๋ค.
- MAX_VALUE, MIN_VALUE๋ฑ์ ํํํ ๊ฐ์ด ์ค์ ๊ฐ๊ณผ ์ ํํ๊ฒ ์ผ์นํ๋ค๊ณ ๋ณด์ฅํ ์ ์๊ธฐ ๋๋ฌธ์,
JS๋ ์ ์์์ ์์ ํ๊ฒ ํํ ๊ฐ๋ฅํ ์์ ๋ฒ์๋ฅผ ๋ฐ๋ก ๊ฐ์ง๊ณ ์๋ค.
ํน์๊ฐ
undefined
- ์๋์ ๊ฐ์ ๊ฒฝ์ฐ, ๋ฐ๋ก ํ ๋นํ์ง ์์๋ ๋ฐํ๋๋ ๊ฐ์ด๋ค
- ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ
- ์กด์ฌํ์ง ์๋ ์์ฑ์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ
- ๊ฐ์ ๋ฐํํ์ง ์์ ํจ์์ ๋ฆฌํด๊ฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
void
- JS์ ๋ด์ฅ ์๋ณ์๋ก, ํํ์์ ๊ฐ์ undefined๋ก ๋ง๋ค ์ ์๋ค.
ํน์ ์ซ์
NaN
NaN์ด๋
- Not a number์ ์ฝ์๋ก, ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ๊ฒฝ๊ณ๊ฐ(Sentinel Value)์ ์ผ์ข ์ผ๋ก, ์ซ์ ์งํฉ ๋ด์์ ๋ฐ์ํ ํน๋ณํ ์ข ๋ฅ์ ์๋ฌ์ํฉ์ ๋ํ๋ธ๋ค.
- ๊ทผ๋ฐ typeof์ ๊ฒฐ๊ณผ๊ฐ์ number์ด๋ค.
- ๊ฑฐ๊ธฐ๋ค๊ฐ ๊ฐ ๋น๊ต๋ ์๋๋ค.
isNaN()
- ๋ด์ฅ์ ํธ์ isNaN์ด๋ ES6์ Number.isNaN()์ผ๋ก NaN ์ฌ๋ถ๋ฅผ ํ๊ฐํ ์ ์๋ค๋ง,
๋ด์ฅ์ ํธ์ isNaN์ ๋ฌธ์ ๊ฐ ์๋ค. - 'a'๋ ์ซ์๋ ์๋์ง๋ง, NaN์ด๋ ๊ฐ์ ๋ ์๋๋ค. ๊ทผ๋ฐ isNaN์ ์ซ์๊ฐ ์๋๋ ์ด์ ๋ก, 'a'์ ๋ํ ๋ฆฌํด๊ฐ์ด true์ด๋ค.
- ๋ฐ๋ฉด Number.isNaN์ ์ ์์ ์ผ๋ก false๊ฐ ๋ฐํ๋๋ค. ๊ทธ๋์ isNaN์ ํธํจ์๋ ์ฌ์ฉํ์ง ์๋ํธ์ด ์ข๋ค.
๋ฌดํ๋
- JS์์ 0์ผ๋ก ๋๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌดํ๋๋ก ์ถ๋ ฅ๋๋ค
๋ ํผ๋ฐ์ค
- JS์๋ C++์ ์ฐธ์กฐ๋ณ์(Reference variable)๊ฐ ์๋ค.
ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์ ๊ณผ ๊ฐ์ฒด ํ์
ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์ ์ ๊ฐ์ด ๋ณต์ฌ๋๋ค.
- ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์
์ ๊ฒฝ์ฐ ๊ฐ์ด ๋ณต์ฌ๋๋ฏ๋ก, ์๋ก ๋ค๋ฅธ ๋ณ์์ ๊ฐ์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋๋ผ๋ ๊ฐ์ด ๋ณต์ฌ๋๋ค.
๊ฐ๋ง ๋ณต์ฌ๋๊ฑฐ๋๊น ํ ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋๋ผ๋ ๋ค๋ฅธ ๋ณ์๋ ๊ทธ๋๋ก์ด๋ค
๊ฐ์ฒด์ ๊ฒฝ์ฐ ๋ ํผ๋ฐ์ค ๊ฐ์ด ๋ณต์ฌ๋๋ค
- ๋ค๋ฅธ ๋ณ์์ ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค ๊ฐ์ ๋ณต์ฌํ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ๊ฐ์ ๊ฐ์ฒด์ ์ ๊ทผํ๊ฒ ๋๋ค.
์์ ๋ณต์ฌ
- ๋ ํผ๋ฐ์ค ๊ฐ์ ๋ณต์ฌํ์ง ๋ง๊ณ , ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๊ฐ์ ๋ค์ ์ฑ์๋ฃ์ด์ผ ํ๋ค.
- ๊ฐ์ฒด ์์ ์์ฑ์ ๊ทธ๋๋ก ๋ณต์ฌํ๋๊ฑธ ์์ ๋ณต์ฌ๋ผ๊ณ ํ๋ค. ์ด๋, ์์ฑ์ ๊ฐ์ด ๊ฐ์ฒด๋ผ๋ฉด, ์ด ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค๊ฐ์ ๋ณต์ฌํด๊ฐ๋ ๊ผด์ด ๋๋ฏ๋ก,
ํด๋น ์์ฑ์ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค
๊น์ ๋ณต์ฌ
- ์์ฑ์ด ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๋ ์ ๋ถ ์๋ก ๋ง๋ค๊ณ ์ถ๋ค๋ฉด, ์ฌ๊ท์ ์ผ๋ก ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๊ฐ์ ์ฑ์๋ฃ์ด์ผ ํ๋ค. ์ด๋ฅผ ๊น์ ๋ณต์ฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Wrapper ๊ฐ์ฒด
- Number๋ฑ์ ๊ฐ์ฒด๋ก ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์ ์ ๊ฐ์ ๊ฐ์ ์๋ ์๋ค.
- ํ์ง๋ง ๊ฐ์ฒด์ ์ซ์ ๊ฐ ์์ฑ์ ๋ณ๊ฒฝํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์์, ํจ์์์ ๊ฐ์ ๋ณ๊ฒฝํด์ค ์ ์๋ค.
์ ๋ฆฌ
๋ฐฐ์ด๊ณผ ์ ์ฌ๋ฐฐ์ด
- ๋ฐฐ์ด๋ ๊ฐ์ฒด๋ผ์ ๋ฌธ์์ด์ ํค๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๊ธด ํ๋ค. ๋ค๋ง ์ด ๊ฒฝ์ฐ length๊ฐ์ด ์ฆ๊ฐํ์ง ์๋๋ค.
- ์ ์ฌ๋ฐฐ์ด์ ๋ฐฐ์ด์ฒ๋ผ ์ ์๋ฅผ ํค๋ก ๊ฐ์ง๊ณ ์์ ๋ฟ, Array์ ๊ฐ์ฒด๋ ์๋๋ค. Array์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ค.
๋ฌธ์์ด
- JS์ ๋ฌธ์์ด์ ๋ฌธ์๋ฐฐ์ด์ด ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฐฐ์ด์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- JS์ ๋ฌธ์์ด์ ๋ถ๋ณ๊ฐ์ด๋ฏ๋ก ํน์ ์์น์ ๋ฌธ์๋ง ๋ฐ๊ฟ ์ ์๋ค. ๋ณ๊ฒฝํ๊ณ ์ ํ๋ค๋ฉด, ์ ๋ฌธ์์ด์ ๋ง๋ค์ด์ผ ํ๋ค.
์ซ์
- JS๋ ํ๋์ ์ซ์ ํ์ ์ธ number๋ฅผ ์ฌ์ฉํ๋ค. ์ด๊ฑธ๋ก ์ ์๋ถํฐ ์ค์๊น์ง ํํํ๋ค
- ์ด์ง ๋ถ๋์์์ ์ผ๋ก ๋ํ๋ธ ์์๋ ์๋ ์์ ๋งค์ฐ ์ ์ฌํ ๋ฟ, ์ผ์นํ์ง ์๋๋ค.
๋ฐ๋ผ์ JS์์ ์์๋ผ๋ฆฌ ์ฐ์ฐ์ ํ๋ฉด, ์ค์ฐจ๊ฐ ๋ฐ์ํ๋๋ฐ, ์ด๋ฅผ ๋จธ์ ์ก์ค๋ก ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. - ๋ค๋ง ์ ์๋ ์๋ ์์ ์ผ์นํ๊ฒ ํํํ ์ ์๋ค.
JS์ ์ ์ ์ต์, ์ต๋๊ฐ์ Number.MAX_SAFE_INTEGER, MIN_SAFE_INTEGER์ ์ฌ์ฉํ๋ฉด ๊ตฌํ ์ ์๋ค. - 0์ผ๋ก ๋๋ ๊ฒฐ๊ณผ๋ Infinity์ด๋ค.
NaN
- ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ๊ฒฝ๊ณ๊ฐ, ์ซ์์์ ๋ฐ์ํ ํน๋ณํ ์ข ๋ฅ์ ์๋ฌ์ํฉ์ ๋ํ๋ธ๋ค.
- NaN์ ์๊ธฐ ์์ ๊ณผ ๋น๊ตํด๋ ๋ค๋ฅด๋ค๊ณ ๋์ค๋ ํน์ฑ์ด ์๋ค.
- window.isNaN์ ๋ฌธ์์ด๋ NaN์ผ๋ก ์ทจ๊ธํ๋ ๋ฐ๋ฉด, Number.isNaN์ ๊ทธ๋ ์ง ์๋ค.
๊ฐ์ฒด & ๋ ํผ๋ฐ์ค
- ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์ ์ ๊ฐ์ด ๋ณต์ฌ๋๋ ๋ฐ๋ฉด, ๊ฐ์ฒด๋ ๋ ํผ๋ฐ์ค ๊ฐ์ด ๋ณต์ฌ๋๋ค. ๊ฐ์ ๋ ํผ๋ฐ์ค๊ฐ์ ๊ฐ์ง๋, ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค
- ๊ฐ์ฒด ๋ณต์ฌ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ๊ฐ ์๋๋ฐ, ์์ ๋ณต์ฌ๋ ์์ฑ์ ๊ทธ๋๋ก ๋ณต์ฌํ๋ค๋ณด๋, ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณต์ฌํ๋ค. ๋ฐ๋ฉด ๊น์ ๋ณต์ฌ๋ ์์ฑ์ด ๊ฐ์ง ๊ฐ์ฒด๋ ์์ ํ ๋ณต์ฌํ๋ค. ์ฆ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
Number ๊ฐ์ฒด
- Number๊ฐ์ฒด๋ก ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์ ์ ๊ฐ์ธ๋ ๊ฒฝ์ฐ, ํ์ ์ object์ธ๋ฐ, ์ธ์ ์ธ๋ฐ์ฑ์ด ๋ฐ์ํ ์ง ๋ชจ๋ฅธ๋ค.
- ๊ฐ์ฒด์ด๊ธด ํ์ง๋ง ๋ด๋ถ์ ํ๋ฆฌ๋ฏธํฐ๋ธ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.