개발자

null과 undefined를 나누어 사용하는 이유가 무엇인가요?

2023년 01월 06일조회 481

javascript 공부중인 학생입니다. '없음'은 null과 undefined로 나누어 사용한다고 하는데, 이 둘의 차이는 알겠으나 왜 이 두개를 나눠서 다르게 사용하게 된 것인가요? 값을 지정하지 않았다는 것과 없다는 것이 코드를 짤 때 큰 차이를 가져오게 되나요? 소중한 답변 감사합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

옥민수님의 프로필 사진

1. 언어를 설계한 사람이 이를 구분지어 놓았습니다. 메모리 공간을 어떻게 초기화하냐의 차이입니다. 2. 엔진에서 변수에 할당된 값에 따라 return 하기에 특정 변수의 값을 비교하거나 특정 api나 object 등의 attribute를 접근할 때 구분이 필요합니다. 요런 부분의 코드를 짠다면 동작의 차이를 가져오겠죠. 예외처리에 대한 부분을 신경쓰셔서 학습해가시면 곧 경험하실겁니다.

ㅇ0ㅇ님의 프로필 사진

자료형 타입을 공부해보시면 도움이 될 겁니다.

윤석현님의 프로필 사진

undefined 같은 경우는 자바스크립트에서 변수를 선언했을 때 런타임 이전에 undefined으로 초기화 됩니다(ES6에서 추가된 키워드는 선언 시 undefined로 초기화 되지 않고 TDZ에 들어갑니다). 할당은 런타임 시점에서 할당문을 만났을 때 발생합니다. 즉, 할당되지 않은 변수일 때 undefined 입니다. undefined는 자료형이고 값은 유일하게 undefined가 있습니다. 이 타입은 개발자가 임의로 할당하기 위한 것이 아닙니다. null 같은 경우는 가령 api 서버에서 데이터베이스의 데이터를 쿼리할 때 해당하는 데이터가 없을 때 null을 리턴합니다. exception을 던지는 수단은 가장 마지막에 고려되고, 일반적으로 null을 리턴합니다. 즉 null은 개발자가 임의로 할당하는 값입니다. 정리해서, 둘의 차이는 개발자가 의도를 갖고 변수에 할당할 수 있는 지의 차이입니다. 빈 변수라는 것을 보이고 싶다면, undefined가 아니라 null을 할당해야 합니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!