개발자
javascript 공부중인 학생입니다. '없음'은 null과 undefined로 나누어 사용한다고 하는데, 이 둘의 차이는 알겠으나 왜 이 두개를 나눠서 다르게 사용하게 된 것인가요? 값을 지정하지 않았다는 것과 없다는 것이 코드를 짤 때 큰 차이를 가져오게 되나요? 소중한 답변 감사합니다.
답변 3
1. 언어를 설계한 사람이 이를 구분지어 놓았습니다. 메모리 공간을 어떻게 초기화하냐의 차이입니다. 2. 엔진에서 변수에 할당된 값에 따라 return 하기에 특정 변수의 값을 비교하거나 특정 api나 object 등의 attribute를 접근할 때 구분이 필요합니다. 요런 부분의 코드를 짠다면 동작의 차이를 가져오겠죠. 예외처리에 대한 부분을 신경쓰셔서 학습해가시면 곧 경험하실겁니다.
undefined 같은 경우는 자바스크립트에서 변수를 선언했을 때 런타임 이전에 undefined으로 초기화 됩니다(ES6에서 추가된 키워드는 선언 시 undefined로 초기화 되지 않고 TDZ에 들어갑니다). 할당은 런타임 시점에서 할당문을 만났을 때 발생합니다. 즉, 할당되지 않은 변수일 때 undefined 입니다. undefined는 자료형이고 값은 유일하게 undefined가 있습니다. 이 타입은 개발자가 임의로 할당하기 위한 것이 아닙니다. null 같은 경우는 가령 api 서버에서 데이터베이스의 데이터를 쿼리할 때 해당하는 데이터가 없을 때 null을 리턴합니다. exception을 던지는 수단은 가장 마지막에 고려되고, 일반적으로 null을 리턴합니다. 즉 null은 개발자가 임의로 할당하는 값입니다. 정리해서, 둘의 차이는 개발자가 의도를 갖고 변수에 할당할 수 있는 지의 차이입니다. 빈 변수라는 것을 보이고 싶다면, undefined가 아니라 null을 할당해야 합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!