ํ์
์๋ฐ์คํฌ๋ฆฝํธ์์์ ํ์ ์ด๋?
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์ด๋, ์ด๋ค ๊ฐ์ ๋ค๋ฅธ ๊ฐ๊ณผ ๊ตฌ๋ณํ ์ ์๋ ๊ณ ์ ํ ๋ด๋ถ ํน์ฑ์ ๋งํ๋ค
๋ด์ฅ ํ์
- JS๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฅ ํ์ ์ ๊ฐ์ง๋ค
- object๋ฅผ ์ ์ธํ ๋๋จธ์ง๋ ์์(premitive)ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค
- null์ ์ ์ธํ ๊ฒฝ์ฐ typeof๋ก ๊ฐ์ ํ์ ์ ์ ์กฐํํ ์ ์์ผ๋, null๋ง object๋ก ๋์ค๋ ๋ฌธ์ ๊ฐ ์๋ ์ ์ ์ฃผ์.
object์ ํ์ํ์
- ํจ์์ ๋ฐฐ์ด์ object์ ํ์ํ์ ์ด๋ค.
- ํจ์ ๊ฐ์ฒด์ length ํ๋กํผํฐ๋ก ๋งค๊ฐ๋ณ์ ๊ฐ์๋ฅผ ์ ์ ์๋ค.
- ๋ฐฐ์ด ๊ฐ์ฒด์ length, ์ธ๋ฑ์ค๋ก ์ ๊ทผ ๊ฐ๋ฅํ ๋ฐฐ์ด์์๋ฑ์ ์กฐํํ ์ ์๋ค.
- ํจ์๊ฐ ๊ฐ์ฒด์ธ์ง ์์ฌ๋๋ค๋ฉด...
๊ฐ์ ํ์ ์ ๊ฐ์ง๋ค
- JS๋ ํ์ ๊ฐ์ ๊ฐ ์๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค. ๊ฐ์ ๋ณ์์ ๋ค์ํ ํ์ ์ ๊ฐ์ ์ ์ฅํด๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
๊ฐ์ด ์๋(undefined) vs ์ ์ธ๋์ง ์์(undeclared)
JS์์ ๊ฐ์ด ์๋๊ณผ ์ ์ธ๋์ง ์์ ์ํ๋ ๋ค๋ฅธ ์ํ์ด๋ค.
- undefined: ์ ๊ทผ ๊ฐ๋ฅํ ์ค์ฝํ์ ๋ณ์๊ฐ ์ ์ธ๋์์ผ๋, ์๋ฌด๋ฐ ๊ฐ์ด ํ ๋น๋์ง ์์์
- undeclared: ์ ๊ทผ ๊ฐ๋ฅํ ์ค์ฝํ์ ๋ณ์๊ฐ ์ ์ธ๋์ง ์์์
- ํ์ง๋ง, typeof ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ ๋ ๋ค undefined์ด๋ค,
- typeof ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค ๋ณด๋, ์ ๋ง๋ก ์ ์ธ๋๊ธด ํ๊ฑด์ง ๋ถํฐ ์ ๋ฐฉ๋ฒ์ด ์๋ค.
- ๊ทธ๋๋ ์ ์ธ๋์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ณ์๊ฐ์ ์ ๊ทผํด์ผ ํ๋ค๋ฉด, ๋, ์ ์ธ๋์ง ์์๋๋ผ๋ ์ ์์ ์ผ๋ก ๋์ํด์ผ ํ๋ค๋ฉด,
undeclared์ typeof์ ๊ฒฐ๊ณผ๊ฐ undefined์ธ ์ ์ ์ด์ฉํ ์ ๋ ์๋ค.
์ ๋ฆฌ
typeof์ null
- JS๋ typeof๋ผ๋ ์ฐ์ฐ์๋ก ๊ฐ์ ํ์ ๋ช ์ ์์๋ผ ์ ์๋ค. ๊ทผ๋ฐ null์ object๋ก ์ถ๋ ฅ๋๋ ๋ฒ๊ทธ๊ฐ ์๋ค
object์ ํ์ํ์
- function๊ณผ array๋ object์ ํ์ํ์ ์ด๋ค. ๊ทธ๋์ ์๋ค๋ ์์ฑ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
undeclared vs undefined
- undeclared์ undefined๋ ์ ๋ ๊ฐ์ง ์๋ค. undefined๋ ์ ์ธ๋ ๋ณ์์ ํ ๋นํ ์ ์๋ ๊ฐ์ธ ๋ฐ๋ฉด,
undeclared๋ ์ ์ธ๋์ง ์์๋ค๋ ์ํ๋ฅผ ๋ํ๋ด๋ ํํ์ด์ง, ํ ๋นํ ์ ์๋ ๊ฐ์ด ์๋๋ค.
๊ทผ๋ฐ ์ ์ JS๋ถํฐ ์ด ๋ ์ฉ์ด๋ฅผ ๋์ถฉ ์์ด ์จ๋ฒ๋ฆฐ๋ค. ์ ์ธ๋์ง ์์ ๊ฒฝ์ฐvar is not defined๋ผ๊ณ ํํํ๊ธฐ ๋๋ฌธ์ด๋ค. - typeof๋ฅผ ์ฌ์ฉํด์ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ ๋ณ์๊ฐ ์ ์ธ๋์๋์ง๋ฅผ ์ฒดํฌํ ์ ์๋ค.