๐Ÿ™…โ€โ™€๏ธ null, undefined, undeclared์˜ ์ฐจ์ด์  & ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์€์œ ๋กœ๊ทธยท2022๋…„ 1์›” 5์ผ
0

๐Ÿ“š study

๋ชฉ๋ก ๋ณด๊ธฐ
19/21

null

์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด "์—†์Œ"์„ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’

์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

var tmp = null;
console.log(tmp === null); // true
console.log(typeof tmp === 'object'); // true

=== ๋™๋“ฑ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์ฒดํฌํ•˜๋ฉด ๋œ๋‹ค. ์œ ์˜ํ•ด์•ผํ•  ์ ์€ null์„ typeof ์‚ฌ์šฉํ•˜๋ฉด object๊ฐ€ ๋‚˜์˜จ๋‹ค.


undefined

๋ณ€์ˆ˜ ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ •์˜ํ•œ ์ดˆ๊ธฐ๊ฐ’

์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

var tmp;
console.log(tmp); // undefined
console.log(tmp === undefined); // true
console.log(typeof tmp === 'undefined'); // true

=== ๋™๋“ฑ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ typeof๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.


undeclared

์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์Šค์ฝ”ํ”„ ์•ˆ์—์„œ ์„ ์–ธ์กฐ์ฐจ ๋˜์ง€ ์•Š์€ ์ƒํƒœ

// ๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ ์•„๋ž˜ ์ฝ”๋“œ ์ž…๋ ฅํ•˜๋ฉด ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

// ๋Š์Šจํ•œ ๋ชจ๋“œ (๋””ํดํŠธ)
tmp = "testString";
window.tmp; // "testString"

// ์—„๊ฒฉ ๋ชจ๋“œ
"use strict"
tmp = "testString"; // ์—๋Ÿฌ: Uncaught ReferenceError: tmp is not defined

use strict ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์—„๊ฒฉ๋ชจ๋“œ ๋กœ ์ง„์ž…ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ๋งŒ๋‚˜๊ธฐ ํž˜๋“ค๋‹ค. ์—„๊ฒฉ๋ชจ๋“œ๊ฐ€ ์•„๋‹Œ ๋Š์Šจํ•œ ๋ชจ๋“œ(๋””ํดํŠธ) ํ™˜๊ฒฝ์—์„  ์„ ์–ธ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ์ž๋™์œผ๋กœ global ๋ณ€์ˆ˜ ์ทจ๊ธ‰ํ•œ๋‹ค.

profile
เน‘โ€ขโ€ฟโ€ขเน‘

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