본문 바로가기

개발자 강화/프론트엔드

[매일메일] undefined와 null의 차이점? (FE.250127)

undefined: 자바스크립트에서 자동으로 할당되는 값. 아직 값을 할당하지 않은 상태.

- 변수가 선언된 후 값 할당이 되지 않으면, 자바스크립트에서 변수에 undefined를 자동으로 부여함

- let a;가 선언되면, 자바스크립트는 자동으로 a에 undefined 할당함

 

null: 개발자가 의도적으로 할당하는 값. 의도적으로 값을 비워 둔 상태를 나타냄.

- 변수에 값이 없음을 명확히 표현하기 위해 개발자가 null을 할당함

- let b = null; b라는 변수에 값이 비어있음을 의도하기 위해 null을 할당한 것

 

느슨한 비교(==)에서는 null과 undefined가 같게 처리되지만

엄격한 비교(===)에서는 null과 undefined가 다르게 처리됨

 

메모리 관리에서 undefined와 null

null은 개발자가 명시적으로 메모리를 해제하고자 할 때 사용하는 방법.

객체를 참조하던 변수를 null로 설정하면, 해당 변수는 더 이상 그 객체를 가리키지 않아 참조가 끊어짐.

자바스크립트의 가비지 컬랙터는 객체가 사용되지 않는다고 판단해 메모리에서 제거함.

 

undefined는 자바스크립트 엔진이 자동으로 할당하는 값. 메모리 해제와 직접적인 관련이 없음.

unefined는 값이 정의되지 않음을 나타내는 것이므로, 자바스크립트의 해제 대상으로 인식되지 않음.

 


 

출처

[1] 매일메일. 250127. undefined와 null의 차이점에 대해서 설명해주세요. 63번. https://maeil-mail.kr

[2] 재미있게 확실히 이해하는 null / undefined / NaN 차이 https://inpa.tistory.com/entry/%F0%9F%93%9A-null-undefined-NaN