null일까? undefined일까?

Judy·2021년 12월 30일
2

JavaScript

목록 보기
11/14

둘 다 '없다'인데 다르다?

1. null

  • 변수에 값이 없다는 것을 의도적으로 명시 (intentional absence)
  • 즉, null이라는 빈 값을 할당 한 것.
var dog = null;    // 변수 dog에 null이라는 빈 값 할당

  • null 은 객체로 취급되기 때문에, 변수 dog의 typeof는 object로 출력된다.

2. undefined

  • 변수를 선언한 이후 값을 할당하지 않음.
  • 변수 선언에 의해 확보된 메모리 공간이 처음 할당이 이뤄질때까지의 빈상태를 자바스크립트 엔진이 undefined로 초기화함.
    -> 개발자가 의도적으로 할당하기위한 값이 아니라 자바스크립트 엔진이 변수를 초기화할 때 사용하는 값.
  • 변수 참조 시 undefined가 반환된다면 초기화되지 않은 변수라는 것을 알 수 있음.

  • 변수 cat은 자료형이 결정되지 않았기때문에 typeof는 undefined로 출력된다.

3. 데이터 타입

  • 자바스크립트(ES6) 원시타입으로 분류

4. 동등 비교 연산자와 일치 비교 연산자

(1) 동등 비교 연산자 null == undefined

  • == 는 느슨한 비교형이며, 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되어 타입을 일치 시킨 후 같은 값인지 비교, 이를 암묵적 타입 변환이라고 한다.

(2) 일치 비교 연산자 null === undefined

  • === 는 엄격한 비교형이며, 타입도 같고 값도 같은 경우에 한하여 true가 반환된다.

5. 빈 그릇 vs 빈 그릇 그러나 사과를 올리지 않은..

null은 의도적인 빈 그릇
undefined는 사과를 올려놓지 않은 빈 그릇
그릇이라는 것은 같지만 그릇의 활용은 다르다.

profile
영원히 공부하는 멋진 장선생!!

0개의 댓글