์๋ฐ์คํฌ๋ฆฝํธ์์ TypeError๋?
์ด์ TypeError์ ๋ํด ์ค๋ช ๋๋ฆด๊ฒ์.
TypeError๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ์ํ๋ ๋ฐํ์ ์๋ฌ ์ค ํ๋๋ก, ๋ณ์๋ ๊ฐ์ด ์์๋ ์๋ฃํ(ํ์ )๊ณผ ๋ง์ง ์๊ฑฐ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉ๋์ง ์์ ๋ ๋ฐ์ํ๋ ์ค๋ฅ์ ๋๋ค.
TypeError๊ฐ ๋ฐ์ํ๋ ๋ช ๊ฐ์ง ์ํฉ:
1. ํจ์๊ฐ ์๋ ๊ฒ์ ํจ์์ฒ๋ผ ํธ์ถํ๋ ค๊ณ ํ ๋:
• ์: null์ด๋ undefined ๊ฐ์ ํจ์์ฒ๋ผ ํธ์ถํ๋ฉด ๋ฐ์ํฉ๋๋ค.
let func = null;
func(); // TypeError: func is not a function
2. ๊ฐ์ฒด ์์ฑ์ ์ ๊ทผํ๋ ค๊ณ ํ์ง๋ง ๊ทธ ๊ฐ์ด undefined์ผ ๋:
• ์: ๊ฐ์ฒด๊ฐ ์๊ฑฐ๋ ์ ์๋์ง ์์ ์ํ์์ ์์ฑ์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ๋ฐ์ํฉ๋๋ค.
let obj;
console.log(obj.name); // TypeError: Cannot read property 'name' of undefined
3. ํน์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ค๊ณ ํ ๋ ๊ทธ ๋ฉ์๋๊ฐ ์กด์ฌํ์ง ์์ ๋:
• ์: ๋ฐฐ์ด์ ๋ฉ์๋๋ฅผ ๊ฐ์ฒด์์ ํธ์ถํ๋ ค๊ณ ํ๋ฉด ๋ฐ์ํ ์ ์์ต๋๋ค.
let obj = {};
obj.push(1); // TypeError: obj.push is not a function
์ ๋ฆฌํ์๋ฉด:
TypeError๋ ๊ฐ์ด ์์๋ ๋ฐ์ดํฐ ํ์ ์ด ์๋๊ฑฐ๋, ๊ทธ ํ์ ์ ๋ง๋ ์์ ์ ์ํํ ์ ์์ ๋ ๋ฐ์ํ๋ ์๋ฌ์ ๋๋ค. ์๋ฅผ ๋ค์ด, null ๊ฐ์ ๋ํด ํจ์์ฒ๋ผ ํธ์ถํ๋ ค๊ณ ํ๋ฉด ํจ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ **“ํ์ ์ด ๋ง์ง ์๋ค(TypeError)”**๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฑฐ์ฃ .