โ null๊ณผ undefined ๋ชจ๋ ๊ฐ์ด ์๋ ์ํ
null : ๋ณ์ ์ด๊ธฐํ๋ก ๋ช ์์ ์ผ๋ก ๋น ๊ฐ์ ๋ณ์์์ ํ ๋นํ ์ํ (null์ด๋ผ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์์ง๋ง ๋ฐ์ดํฐ๊ฐ ๋น์ด์๋์ํ
undefined : ๋ณ์๋ฅผ ์ ์ธ๋ง ํ ์ํ
var n = null;
var u;
console.log(typeof 10); -> number
console.log(typeof "Hello World"); -> string
๋ค์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ๋ฐ์ดํฐ ํ์ ์ด ๋ค์ด๊ฐ ์๋์ง ์ถ๋ ฅํด์ ๋ณด์ฌ์ค
console.log(typeof null); -> object
console.log(typeof undefined); -> undefined
๐ null์ด object๋ก ์ถ๋ ฅ๋๋ ์ด์ : ํ์์ ์ผ๋ก ๊ฐ๊ณ ์๋ ๋ฒ๊ทธ๋๋ฌธ(๋ฒ๊ทธ๋ ์์ ๋ถ๊ฐ)
console.log(null== undefined); -> true
console.log(null === undefined); -> false
๐ ๋ฑํธ ์ธ๊ฐ ์ด๋ฉด ๋ฐ์ดํฐ ํ์ ์์ฒด๊ฐ ๋ค๋ฅด๊ธฐ๋๋ฌธ์ false๋ก ์ถ๋ ฅ
console.log(!true); -> false
console.log(!false); -> true
console.log(!null); -> true
console.log(!!null); -> false
๐ ๋ถ์ ์ ๋ถ์ ํ๋๋ฐ ์๋์ํ๋ก ๋์๊ฐ์ง ์์ ์ด์
์ด๋ฏธ ํ๋ฒ ๋ถ์ ํ true๋ก ๋ฐํ์ด ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ true์ ๋ถ์ ํ๋ค๊ณ
์๊ฐํด์ false๋ก ์ถ๋ ฅ๋๋ค.
console.log(!undefined);
console.log(!!undefined);
console.log(10 + null); -> 10
console.log(10 + undefined); -> NaN
โ ์ซ์์ null์ด ๋ง๋๋ ์๊ฐ null์ 0์ผ๋ก ๋ฐ๋๊ฒ ๋๋ค.
โNaN(Not a Number) ๋ง์
์ด ์งํ์ ๋์ง๋ง ์ซ์๋ ์๋๋ค.( ๋ง์
์ ํ ์ ์๋ ๊ฑด๋ฐ ๋ง์
์ ์์ผ ์ค๋ฅ๋ก ๋์ด)