๐งก JavaScript
[JS] null๊ณผ undefined์ ์ฐจ์ด
Genie_.
2024. 12. 27. 00:37
728x90
๋ฐ์ํ
๐งก JavaScript
1. ๊ธฐ๋ณธ ๊ฐ๋
undefined
์ ์
- ๋ณ์๋ฅผ ์ ์ธ๋ง ํ๊ณ ์ด๊ธฐํํ์ง ์์์ ๋, JavaScript ์์ง์ด ์๋์ผ๋ก ํ ๋นํ๋ ๊ฐ์ ๋๋ค.
- ํจ์๊ฐ return๋ฌธ ์์ด ์ข ๋ฃ๋๋ฉด, ์๋ฌต์ ์ผ๋ก ๋ฐํ๋๋ ๊ฐ์ ๋๋ค.
์ฌ์ฉ ์ํฉ
- ์์ง ๊ฐ์ด ํ ๋น๋์ง ์์ ์ํ๋ฅผ ํํํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ ์ธ๋ ๋ณ์์ ๊ฐ์ด ๋ค์ด๊ฐ๊ธฐ ์ ๊น์ง๋ ํด๋น ๋ณ์์ ๊ฐ์ undefined์ ๋๋ค.
let value;
console.log(value); // ์ถ๋ ฅ: undefined
function doSomething() {
// ์๋ฌด ๊ฐ๋ ๋ฐํํ์ง ์์ผ๋ฏ๋ก undefined๊ฐ ๋ฐํ๋ฉ๋๋ค.
}
console.log(doSomething()); // ์ถ๋ ฅ: undefined
null
์ ์
- ๊ฐ๋ฐ์๊ฐ ๋ช ์์ ์ผ๋ก "๊ฐ์ด ์์"์ ํํํ๊ธฐ ์ํด ํ ๋นํ๋ ๊ฐ์ ๋๋ค.
- ์๋์ ์ผ๋ก ๊ฐ์ฒด๋ ๋ณ์์ “์์ง ๊ฐ์ด ์์”์ ํ์ํ๊ณ ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ ์ํฉ
- ํน์ ๋ณ์๊ฐ ๋์ค์ ์ด๋ค ๊ฐ์ ๊ฐ์ง๊ฒ ๋ ์์ ์์ ์๋ฆฌ๋ฉด์, ํ์ฌ๋ ๋น์ด์์์ ํํํ ๋ ์ ์ฉํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ ๊ฒฐ๊ณผ๊ฐ ์๊ฑฐ๋, API ํธ์ถ ๊ฒฐ๊ณผ๊ฐ ๋น์ด์์ ๋ ๋ฑ์์ ์ฌ์ฉ๋ฉ๋๋ค.
let user = null;
console.log(user); // ์ถ๋ ฅ: null
2. ๋น๊ต ์ฐ์ฐ์์์์ ์ฐจ์ด
๋์จํ ๋๋ฑ ๋น๊ต(==)
- null๊ณผ undefined๋ ๋์จํ ๋๋ฑ ๋น๊ต ์ ์๋ก ๋๋ฑํ ๊ฐ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
console.log(null == undefined); // true
์๊ฒฉํ ๋๋ฑ ๋น๊ต(===)
- ์๊ฒฉํ ๋๋ฑ ๋น๊ต์์๋ ์๋ฃํ๊น์ง ์ผ์นํด์ผ ํ๊ธฐ ๋๋ฌธ์, ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
console.log(null === undefined); // false
๋น๊ต ๋ฐฉ์์ ์ฐจ์ด๋ ์กฐ๊ฑด๋ฌธ์ด๋ ๋ก์ง์ ์์ฑํ ๋ ์๋์น ์์ ๋ฒ๊ทธ๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด ๊ผญ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
3. ์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ ๋ฐ ์ฃผ์์
์๋์ ์ธ ๊ฐ ํ ๋น
- undefined๋ ์ฃผ๋ก JavaScript ์์ง์ด ์๋์ผ๋ก ํ ๋นํ๋ ๊ฐ์ด๋ฏ๋ก, ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ “์์ง ๊ฐ์ด ์๋ค”๋ ์ํ๋ฅผ ๋ํ๋ด๋ ์ฉ๋๋ก ์ดํดํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- null์ ๊ฐ๋ฐ์๊ฐ ๋ช
์์ ์ผ๋ก “๊ฐ์ด ์์”์ ๋ํ๋ด๊ณ ์ ํ ๋ ํ ๋นํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ด๊ธฐํ ๋จ๊ณ์์ ๋ณ์์ “์์ง ๋ฐ์ดํฐ๊ฐ ์๋ค”๋ผ๋ ์๋ฏธ๋ก null์ ํ ๋นํด, ๋์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ฑฐ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ด๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
typeof ์ฐ์ฐ์์ ์ญ์ฌ์ ์ด์
- typeof null์ ๊ฒฐ๊ณผ๊ฐ "object"๋ก ๋์ค๋ ๊ฒ์ JavaScript ์ด๊ธฐ ์ค๊ณ ์์ ์ค๋ฅ๋ก ์ธํด ๋จ์ ์๋ ์ญ์ฌ์ ์ ์ฐ์
๋๋ค.
- ์ด ์ ์ null์ ์ค์ ์ฉ๋์๋ ๋ณ๊ฐ๋ก, ํ์ ๊ฒ์ฌ๋ฅผ ํ ๋ ์ฃผ์ํด์ผ ํ ๋ถ๋ถ์ ๋๋ค.
์ฝ๋ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์
- ๋ณ์์ ๊ฐ์ ํ ๋นํ ๋, ์๋์ ์ผ๋ก “๊ฐ์ด ์์”์ ํํํ๊ณ ์ถ๋ค๋ฉด null์ ์ฌ์ฉํ์ฌ ์ฝ๋์ ์๋๋ฅผ ๋ช ํํ ํ ์ ์์ต๋๋ค.
- ๋ฐ๋๋ก, ์ด๊ธฐํ๋์ง ์์ ์ํ๋ฅผ ํ์ธํ ๋๋ undefined ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
4. ํ์ต ์ ๋ฆฌ ๋ฐ ํ์ฉ ๋ฐฉ์
ํต์ฌ ์์ฝ
- undefined: ๋ณ์๊ฐ ์ ์ธ์ ๋์์ง๋ง ์์ง ์ด๊ธฐํ๋์ง ์์ ์ํ๋ฅผ ๋ํ๋ ๋๋ค.
- null: ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก “๊ฐ์ด ์์”์ ํ์ํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
์ค์ ๊ฐ๋ฐ ํ์ฉ
- ์ฝ๋ ์์ฑ ์ ๋ณ์์ ์ด๊ธฐ๊ฐ ์ค์ , API ์๋ต ์ฒดํฌ, ์กฐ๊ฑด๋ฌธ ์ฒ๋ฆฌ ๋ฑ์์ null๊ณผ undefined์ ์ฐจ์ด๋ฅผ ๋ช ํํ ์ดํดํ๊ณ ์ฌ์ฉํ๋ฉด, ์๊ธฐ์น ์์ ์ค๋ฅ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค.
728x90
๋ฐ์ํ