[TIL] undefined 와 null

welcome·2021년 10월 12일
0

🏃‍♂️ undefined 와 null


undefined와 null은 둘다 '없음'이라는 값을 나타내고 있다.

두값의 의미는 같은것 같지만 미세하게 다르며 목적또한 다르다.

🏃‍♀️ undefined


undefined는 사용자가 명시적으로 지정할 수도 있지만 값이 존재하지 않을때 자바스크립트 엔진이 자동으로 부여하는 경우도 있습니다.

자동으로 부여하는 경우

  1. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할때

  2. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할때

  3. return 문이 없거나 호출되지 않은 함수의 실행결과

👨🏼‍🤝‍👨🏼 직접 사용자가 명시적으로 'undefined'를 지정한 경우와 1의 경우에는 차이점이 있다.


전자의 undefined의 경우 그 자체로 값 이기 때문에 '비어있음'을 뜻하긴 하지만 하나의 값으로 존재하기 때문에 배열의 요소는 프로퍼티 이름이 실존하게 되고 따라서 순회의 대상이 될수있다.
반면에 후자의 경우 해당프로퍼티 내의 키값이 존재하지 않기 때문에 배열의 순회를 할수없다. 즉 전자는 존재하는 데이터이고 후자는 존재하지 않는 데이터이다.

🐏 일반적인 경우 '없음'이라는 값을 할당하는 경우 'null'을 사용한다.


undefined의 경우 직접 명시한 경우와 자동으로 반환된 경우의 차이가 있기 때문에
주로 null 값을 통해 '없음'을 나타낸다. null은 '없음' 이라는 값을 나타내기 위해 만들어진 데이터 타입이다.

cf) typeof null은 object로 표기된다.


✅ 코어자바스크립트 도서를 공부한 후 정리한 내용입니다.

0개의 댓글