지난 시간에 가비지 컬렉션(GC)의 개념에 대해 공부했다.
공부한 내용 중에는 객체를 의도적으로 가비지 컬렉션이 처리하게 하는 방법도 알게 됐다.
우리가 사용한 객체를 가비지 컬렉션이 처리할 수 있도록 하려면, 우리는 해당 객체를 unreachable한 상태로 만들어줘야 한다.
객체를 unreachable한 상태로 만드는 방법은 해당 객체에 대한 참조를 없애면 된다.
그렇다면 객체 참조 해제는 null만 가능한 것인가?
undefined는 사용하면 안될까?
만약 가능하다면 null과 undefined의 차이는 무엇일까?
위와 같은 궁금증에 오늘은 null과 undefined에 대해 알아보고자 한다.
위에는 약간의 차이를 구분했을 뿐, 찾아보면 null과 undefined 모두 성능 차이가 엄청나게 나진 않는다고 한다.
그럼에도 나는 참조를 해제하고자 한다면 null을 사용하려 한다.
그 이유는 아래와 같.