티스토리 뷰
null과 undefined의 차이는 아주 쉽지만 생각해본 적이 없을 경우 '응? 그러게? 뭐가 다르지?' 할 수 있어서 적어본다.
undefined
undefined 는 변수를 선언만하고 값을 할당하지 않은 것이다.
즉, 자료형이 결정되지 않은 상태 다.
그래서 값이 할당된 적이 없는 변수에 접근하거나, 존재하지않는 객체 프로퍼티에 접근할 경우 undefined가 반환된다.
var testValue;
var finalValue = 1 + testValue;
console.log(testValue); // undefined
console.log(finalValue); // NaN
위의 코드에서 undefined는 특수 값 NaN(숫자가 아님)처럼 동작한다.
null
null 은 변수를 선언하고 null이라는 빈값을 할당한 것이며, 자료형은 객체 이다.
그래서 변수를 선언하고 초기화하지만 특정 값을 지정하지 않으려는 경우, 변수에 null 값을 할당한다.
var testValue = null;
var finalValue = 1 + testValue;
console.log(testValue); // null
console.log(finalValue); // 1
위의 코드에서 null 값은 숫자 0과 같이 동작한다.
결론
- undefined 와 null 은 모두 빈 값이다.
- undefined 는 자료형이 결정되지 않은 상태이고, null의 자료형은 객체이다.
console.log(undefined == null) // true
console.log(undefined === null) // false
그래서 값만 비교(== 연산자, 동등 연산자) 했을 때는 true가 반환되지만,
자료형까지 비교하면(=== 연산자, 일치 연산자) false가 반환된다.
Reference
'JavaScript' 카테고리의 다른 글
클로저 (Closure) (0) | 2018.12.09 |
---|---|
호이스팅(Hoisting) , 실행 문맥(Execution Context), 스코프 체인(Scope Chain) (0) | 2018.12.09 |
스코프 (Scope) (0) | 2018.12.09 |
웹 컴포넌트 (Web Component) (0) | 2018.12.07 |
자바스크립트의 함수와 일급객체 (1) | 2018.12.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이벤트
- 카보다로카
- JavaScript
- 비뉴베르드
- 스코프
- 신트라투어
- 스코프체인
- 헤갈레이라저택
- 디바스드림
- chama
- 문어스테이크
- 에어프랑스
- vinhoverde
- 클로저
- 수하물분실
- 베나길동굴
- tapabento
- 절벽트래킹
- klm
- 클레리구스성당
- 포르투
- 아제냐스두마르
- 포르토
- 버블링
- 베나길
- 리스본
- 절벽마을
- 알부페이라
- 리스본 대성당
- 포르티망
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함