็„ก์ œ

Undefined๊ณผ null ๋ณธ๋ฌธ

<script>

Undefined๊ณผ null

yo-u-loo 2026. 5. 28. 15:38

 

๐ŸŸจ undefined์™€ null

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ "๊ฐ’์ด ์—†์Œ"์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ๊ฐ€์ง€ ๋Œ€ํ‘œ์ ์ธ ๋ฐ์ดํ„ฐ ํƒ€์ž….

๋‘˜์˜ ์ฐจ์ด๋Š” “์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ž๋™์œผ๋กœ ๋น„์›Œ๋‘์—ˆ๋А๋ƒ” vs “๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ๋น„์› ๋А๋ƒ”์ด๋‹ค.

 

๐ŸŸฃ undefined (์ž๋™์œผ๋กœ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ)

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ฐ’์ด ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ”๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ž๋™์œผ๋กœ ๋ถ€์—ฌํ•œ๋‹ค.

let name;
console.log(name); 
// undefined
  • ๊ฐ’์ด ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ.
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋„ฃ๊ธฐ๋ณด๋‹ค ์—”์ง„์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ.
  • “์—†์Œ”์ด๋ผ๊ธฐ๋ณด๋‹ค ์•„์ง ๋ชจ๋ฆ„์— ๊ฐ€๊นŒ์šด ์ƒํƒœ.

 

๐Ÿ”น ์–ธ์ œ undefined๊ฐ€ ๋‚˜ํƒ€๋‚ ๊นŒ?

// 1. ์„ ์–ธ๋งŒ ๋œ ๋ณ€์ˆ˜
let age;
console.log(age); // undefined

// 2. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด ์†์„ฑ ์ ‘๊ทผ
const user = { id: 1 };
console.log(user.name); // undefined

// 3. ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜
function sayHi() {
    console.log("์•ˆ๋…•!");
}
let result = sayHi();
console.log(result); // undefined

// 4. ์ธ์ž ๋ˆ„๋ฝ
function sum(a, b) {
    console.log(a, b);
}
sum(10); // 10, undefined
  • ๋ณ€์ˆ˜ ์„ ์–ธ ํ›„ ๊ฐ’์„ ๋„ฃ์ง€ ์•Š์•˜์„ ๋•Œ: ๊ณต๊ฐ„๋งŒ ๋งŒ๋“ค๊ณ  ์ฑ„์šฐ์ง€ ์•Š์€ ์ƒํƒœ.
  • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ: ์—†๋Š” ์„œ๋ž์„ ์—ด๋ ค๊ณ  ํ•˜๋Š” ์ƒํƒœ.
  • ํ•จ์ˆ˜์—์„œ return ๋ฌธ์ด ์—†๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†์„ ๋•Œ: ์‹คํ–‰์€ ๋˜์—ˆ์œผ๋‚˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋Œ๋ ค์ฃผ์ง€ ์•Š์€ ์ƒํƒœ.
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ(์ธ์ž)์— ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์•˜์„ ๋•Œ: ์žฌ๋ฃŒ๋ฅผ ๋นผ๋†“๊ณ  ๊ธฐ๊ณ„๋ฅผ ๋Œ๋ฆฐ ์ƒํƒœ.

 

๐Ÿ”น undefined ์ฒ˜๋ฆฌ ํŒ

undefined๋Š” Falsy ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.

let data;

// data๊ฐ€ undefined๋ผ๋ฉด ์ด ์กฐ๊ฑด๋ฌธ์€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
if (data) {
    console.log("๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.");
} else {
    console.log("๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."); // ์‹คํ–‰๋จ
}
 

 

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ undefined๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ€์—ฌํ•˜๋Š” "๊ฐ’์ด ์—†๋Š” ์ƒํƒœ"์˜ ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค. โœ”๏ธ

โœ”๏ธ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒ ํ•˜๊ฑฐ๋‚˜, ๊ฐ์ฒด์— ์—†๋Š” ๊ฐ’์„ ์ฐพ์„ ๋•Œ ์ฃผ๋กœ ๋งˆ์ฃผ์นœ๋‹ค. โœ”๏ธ

โœ”๏ธ ์˜๋„์ ์œผ๋กœ ๋น„์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์„ ๋•Œ๋Š” undefined ๋Œ€์‹  null์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ด€๋ก€์ด๋‹ค. โœ”๏ธ

 


 

โš™๏ธ ์‹ค์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

// 1. ์„ ์–ธ๋งŒ ๋œ ๋ณ€์ˆ˜
let name;
console.log(name); // undefined

// 2. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์†์„ฑ
const user = { id: 1 };
console.log(user.age); // undefined

// 3. ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜
function sayHi() {
    console.log("์•ˆ๋…•!");
}
let result = sayHi();
console.log(result); // undefined

// 4. ํŒŒ๋ผ๋ฏธํ„ฐ ๋ˆ„๋ฝ
function sum(a, b) {
    console.log(a, b);
}
sum(10); // 10, undefined

 


 

๐ŸŸฃ null (์˜๋„์ ์œผ๋กœ ๋น„์šด ์ƒํƒœ)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์›์‹œ ์ž๋ฃŒํ˜• ์ค‘ ํ•˜๋‚˜๋กœ, ์–ด๋– ํ•œ ๊ฐ์ฒด๋„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š” ๋นˆ ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

let userProfile = null; 
console.log(userProfile);
// ์ถœ๋ ฅ: null
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ• ๋‹นํ•˜๋Š” ๋นˆ ๊ฐ’.
  • ์˜๋„์ ์œผ๋กœ ๋น„์›Œ๋‘ ์„ ํ‘œํ˜„.
  • ๋‚˜์ค‘์— ๊ฐ’์ด ๋“ค์–ด์˜ฌ ์ž๋ฆฌ๋ผ๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์šฉ.

 

๐Ÿ”น ๋ฐ˜๋ณต๋ฌธ ๋ฐ DOM์—์„œ์˜ null (์˜๋„์ ์ธ ๋น„์›€)

๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€ ์ฑ„์›Œ ๋„ฃ๊ธฐ ์ „ ์ดˆ๊ธฐํ™” ์ƒํƒœ๋กœ ๋‘๊ฑฐ๋‚˜, ํŠน์ • ์š”์†Œ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๋•Œ ์‹œ์Šคํ…œ์ด ๋ช…์‹œ์ ์œผ๋กœ ๋น„์–ด์žˆ์Œ์„ ์•Œ๋ฆด ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

// 1. ๋ณ€์ˆ˜์— ๊ฐ’์ด ์—†์Œ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„
let userProfile = null; // ์ดˆ๊ธฐ์—๋Š” ๋นˆ ์ƒํƒœ
userProfile = { name: "Gemini", age: 2 }; // ๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ ํ• ๋‹น

// 2. ๊ฐ์ฒด ์ฐธ์กฐ ํ•ด์ œ (๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ)
// ๋” ์ด์ƒ ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š” ์—†์„ ๋•Œ null์„ ๋Œ€์ž…ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ๋Š์Œ
userProfile = null; 

// 3. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์š”์†Œ๋ฅผ ์ฐพ์„ ๋•Œ
// DOM์—์„œ ์—†๋Š” ์•„์ด๋””๋ฅผ ์ฐพ์œผ๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
const element = document.getElementById('non-existent-id');
console.log(element); // null
 

 

๐Ÿ”น ์ฃผ์˜ํ•ด์•ผ ํ•  ํŠน์ง•: typeof null

console.log(typeof null); // "object"
 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ์•„์ฃผ ์˜ค๋ž˜๋œ ์œ ๋ช…ํ•œ ์„ค๊ณ„์ƒ ์˜ค๋ฅ˜(๋ฒ„๊ทธ)๊ฐ€ ํ•˜๋‚˜ ์žˆ๋‹ค.

๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” "null"์ด ๋‚˜์™€์•ผ ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹น์‹œ์˜ ์‹ค์ˆ˜๋กœ ์ธํ•ด "object"๋ผ๊ณ  ์ถœ๋ ฅ๋œ๋‹ค.

์ด๋ฏธ ๋„ˆ๋ฌด ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์˜ ์ฝ”๋“œ๋“ค์ด ์ด ๋ฐฉ์‹์— ์˜์กดํ•˜์—ฌ ๊ตฌ๋™๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •๋˜์ง€ ๋ชปํ•˜๊ณ  ์—ญ์‚ฌ์ ์ธ ํŠน์ง•์œผ๋กœ ๋‚จ์•„์žˆ๋‹ค.

์ฆ‰, "null์€ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ typeof ๊ฒฐ๊ณผ๋Š” object์ด๋‹ค"๋ผ๋Š” ์ ์„ ๊ผญ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ”น null๊ณผ undefined ๋น„๊ต ์—ฐ์Šต

// ๋‘˜ ๋‹ค '๊ฐ’์ด ์—†์Œ'์„ ๋œปํ•˜์ง€๋งŒ, ๋น„๊ตํ•  ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

console.log(null == undefined);  // true (๋А์Šจํ•œ ๋น„๊ต: ๋‘˜ ๋‹ค ๋น„์–ด์žˆ๋‹ค๋Š” ๋งฅ๋ฝ์€ ๊ฐ™์Œ)
console.log(null === undefined); // false (์—„๊ฒฉํ•œ ๋น„๊ต: ์ž๋ฃŒํ˜• ์ž์ฒด๊ฐ€ ๋‹ค๋ฆ„)

// ์กฐ๊ฑด๋ฌธ์—์„œ์˜ ํ™œ์šฉ (๋‘˜ ๋‹ค Falsy ๊ฐ’)
if (!null) {
    console.log("null์€ ๊ฑฐ์ง“์œผ๋กœ ์ทจ๊ธ‰๋ฉ๋‹ˆ๋‹ค."); // ์‹คํ–‰๋จ
}
  • ==: ๋‘˜ ๋‹ค ๊ฐ’ ์—†์Œ์œผ๋กœ ๊ฐ„์ฃผ.
  • ===: ํƒ€์ž…์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— false.

 

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ null์€ ๊ฐœ๋ฐœ์ž๊ฐ€ "๊ฐ’์ด ์—†์Œ"์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ง์ ‘ ๋„ฃ๋Š” ๊ฐ’์ด๋‹ค. โœ”๏ธ

โœ”๏ธ typeof null์ด "object"์ธ ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์œ ๋ช…ํ•œ ์„ค๊ณ„์ƒ ํŠน์ง•(์˜ค๋ฅ˜)์ด๋‹ค. โœ”๏ธ

โœ”๏ธ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋Š” undefined, ๋ช…์‹œ์ ์œผ๋กœ ๋น„์šด ์ƒํƒœ๋Š” null์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. โœ”๏ธ

 


 

๐Ÿ“‹ undefined vs null ๋น„๊ต ๐Ÿ“‹

๊ตฌ๋ถ„ undefined null
์˜๋ฏธ ์•„์ง ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์Œ ์˜๋„์ ์œผ๋กœ ๊ฐ’์ด ์—†์Œ
์ƒ์„ฑ ์ฃผ์ฒด JS ์—”์ง„ ๊ฐœ๋ฐœ์ž
typeof "undefined" "object" (์œ ๋ช…ํ•œ ์„ค๊ณ„์ƒ ์˜ค๋ฅ˜)
์„ฑ๊ฒฉ ์ž๋™ ์ƒํƒœ ๋ช…์‹œ์  ์ƒํƒœ