| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- ๊ทธ๋ฃน์ ๋ ํฐ
- ํผํ๊ทธ
- selectorslevel4
- ํ์ ์ ๋ ํฐ
- ์ ๋๋ฒ์ ์ ๋ ํฐ
- gtammertable
- ์์ด๋์ ๋ ํฐ
- liststyleimage
- ํฅ์ค์ฝ๋
- wordspacing
- inlineblock
- ๋นํ๊ทธ
- ํด๋์ค์ ๋ ํฐ
- liststyleposition
- CDN
- ์ฃผ์
- texttransform
- captionside
- bordercollapse
- ๊ตฌ๊ธํฐํธ
- textdecoration
- liststyletype
- textshadow
- ๋ชจ๋์นํฐํธ
- borderspacing
- ํฐํธ์จ์ดํธ
- ์ถ์ฝ
- borderstyle
- fontweight
- formtag
- Today
- Total
็ก์
Undefined๊ณผ null ๋ณธ๋ฌธ
๐จ 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" (์ ๋ช ํ ์ค๊ณ์ ์ค๋ฅ) |
| ์ฑ๊ฒฉ | ์๋ ์ํ | ๋ช ์์ ์ํ |
'<script>' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Variable Scope (๋ณ์ ์ค์ฝํ)์ Hoisting (ํธ์ด์คํ ) (0) | 2026.06.02 |
|---|---|
| Function (ํจ์) (0) | 2026.06.02 |
| break์ continue (0) | 2026.05.28 |
| Array Transformation (๋ฐ์ดํฐ ๋ณํ) (0) | 2026.05.28 |
| Array Iteration (๋ฐฐ์ด ๋ฐ๋ณต) (0) | 2026.05.28 |
