undefined은 변수를 선언하고 값을 할당하지 않은 상태, 즉, undefined는 자료형이 없는 상태를 말합니다.
null은 변수를 선언하고 의도적으로 빈 값을 할당한 상태(빈 객체) 를 말합니다.
따라서 'typeof 메서드'를 통해 자료형을 확인해보면
null은 object로,
undefined는 undefined가 출력되는 것을 확인할 수 있습니다.

undefined와 null을 더 잘 이해하기 위해 간단하게 변수 선언 과정에 대해 알아봅시다.
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이라고 정의합니다.
위의 정의에 따르면 우리가 변수를 선언한다는 것은 해당 값을 저장할 메모리 공간을 확보하는 것입니다.
여기서 확보된 메모리 공간이 비어있을 것으로 생각할 수 있는데,
실제로는 자바스크립트 엔진에 의해 undefined라는 값이 암묵적으로 할당되어 초기화됩니다.
따라서 undefined는 값을 할당하지 않은 초기의 상태를,
null은 의도적으로 빈 값을 할당한 상태를 말한 다는 것을 알 수 있습니다.
undefined 와 null 모두 빈 값을 의미하지만, 자료형은 각각 undefined와 object로 다르기 때문에
동등 연산자(==) 와 일치 연산자(===) 로 비교했을 때 결과는 아래와 같습니다.
undefined == null / true undefined === null / false