Frontend/JavaScript & Jquery

[JS문법] null과 undefined

전예방 2024. 7. 13. 17:40

💡 null과 undefined 개념 잡기

 

"둘다 없음"을 나타내는 값이지만 정확히 따져보면 없음의 기준이 다르다!

 

🔎 undefind

: 비어있는 상태 (무시해도됨) -> 없다고 생각

사용자가 undefined을 일부러 부여하는 행위는 생각보다 많지 않은것 같다. > 직접 undefined을 할당하지 말자!!

자바스크립트 엔진이 부여하는 케이스는 존재한다.

👉 값을 대입하지 않은 변수에 접근하고자 할 때 JS 엔진이 반환해주는 값 👈

1. 값을 대입하지 않은 변수

let a;
console.log(a); // undefined

 

2. 객체 내부 존재하지 않은 프로퍼티 접근하려고 할 때

let person = {
    name : "jane",
}

person.age // undefined

 

3. return 문이 없거나 호출되지않은 함수의 실행결과

 

let arr = new Array(3);
console.log(arr); // [empty X 3]

비어있는 요소(empty)와 undefined을 할당한 요소는 엄현히 다르다고 볼 수 있음

> 비어있는 요소는 순회 대상에서 제외됨

> undefined 요소는 순회함 -> '비어있음' 의미하나 하나의 값으로 동작

 

🔎 null

: '비어있음'을 명시적으로 나타내고 싶으면 null을 쓰자!

 

🚨 null의 주의할 점 🚨

let n = null;
console.log(typeof null); // object

console.log(n == undefined); // true

console.log(n === undefined); // false

이건 JS 자체 버그이다.

null은 JS상에서 object 타입으로 인식된다.

어떤 변수의 값이 null인지 판단하기 위해서 typeof를 쓰는건 적절치 않다.

 

null과 undefined을 정확하게 비교하기 위해서는 동등equality 연산자(==) 말고, 일치identity 연산자(===)를 사용해야만 한다.

'Frontend/JavaScript & Jquery'의 다른글

  • 현재글 [JS문법] null과 undefined

관련글