JavaScript ๊ฐœ๋…(2)๐Ÿ’ป

hae.logยท2021๋…„ 9์›” 3์ผ
0

๐Ÿš€ 5. null, undefined

โœ” null๊ณผ undefined ๋ชจ๋‘ ๊ฐ’์ด ์—†๋Š” ์ƒํƒœ

null : ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋นˆ ๊ฐ’์„ ๋ณ€์ˆ˜์•ˆ์— ํ• ๋‹นํ•œ ์ƒํƒœ (null์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ƒํƒœ

undefined : ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒ ํ•œ ์ƒํƒœ

๐Ÿ”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

๐Ÿ” ๋ถ€์ •์„ ๋‚˜ํƒ€๋‚ด๋Š” ์—ฐ์‚ฐ์ž์™€ null๊ณผ undefined ๊ฒฐํ•ฉํ•ด๋ณด๊ธฐ

console.log(!null); -> true
console.log(!!null); -> false

๐Ÿ“Œ ๋ถ€์ •์„ ๋ถ€์ •ํ–ˆ๋Š”๋ฐ ์›๋ž˜์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š์€ ์ด์œ 
์ด๋ฏธ ํ•œ๋ฒˆ ๋ถ€์ •ํ•œ true๋กœ ๋ฐ˜ํ™˜์ด ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— true์— ๋ถ€์ •ํ–ˆ๋‹ค๊ณ 
์ƒ๊ฐํ•ด์„œ false๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

console.log(!undefined);
console.log(!!undefined);

๐Ÿ”null๊ณผ undefined์˜ ์—ฐ์‚ฐ์ž(+) ์ ์šฉํ•ด๋ณด๊ธฐ

console.log(10 + null); -> 10
console.log(10 + undefined); -> NaN

โœ” ์ˆซ์ž์™€ null์ด ๋งŒ๋‚˜๋Š” ์ˆœ๊ฐ„ null์€ 0์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.
โœ”NaN(Not a Number) ๋ง์…ˆ์ด ์ง„ํ–‰์€ ๋˜์ง€๋งŒ ์ˆซ์ž๋Š” ์•„๋‹ˆ๋‹ค.( ๋ง์…ˆ์„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฑด๋ฐ ๋ง์…ˆ์„ ์‹œ์ผœ ์˜ค๋ฅ˜๋กœ ๋‚˜์˜ด)

0๊ฐœ์˜ ๋Œ“๊ธ€