자바스크립트 undefined 와 null 의 차이

javascript 2017. 6. 11. 23:39

728x90
반응형

자바스크립트의 undefined 는 변수에 값을 만든 후 초기화 하지 않은 상태 입니다.

1
var data1;
cs

이렇게 변수를 만들면 다음과 같이 출력됩니다.


보통 변수를 만들면 어떤 데이터형을 저장할지 값을 초기화 시킵니다.

1
2
3
4
5
6
7
8
9
10
// 숫자형
var num = 0;
 
// 문자형
var str = "";
 
// 논리형
var state = false;
 
//...
cs


이렇게 변수에 값을 다음과 같은 값을 넣어 해당하는 변수가 어떤 데이터를 가지고 있는지 알 수 있습니다


------


null 은 아무것도 참조하고 있지 않다 라는 의미 입니다.

null 은 주로 객체(array, object)를 담을 변수를 초기화 할 때 사용합니다.

1
2
// 객체형
var nu1 = null;
cs



-------


undefined 와 null은 같은것일까요?

아랫 부분은 비교 연산자를 써서 데이터를 비교했습니다.

이 부분을 보시면

== 을 썻을 때는 true 가 출력되지만

=== 을 썼을 때는 false가 출력됩니다.

== 는 자료형이 다르면 자동 형변환으로 자료형을 강제로 맞춰서 비교합니다.


간단한 예로 다음 스샷을 보시면

여기서 변수 num과 변수 str 은 1이라는 값을 가지고 있지만 == 를 사용했을 때에는 true를 출력하지만,

=== 를 사용하여 자료형 까지 엄격하게 비교했을 때에는 false를 출력합니다.



undefined 와 null 은 둘다 값이 없기 때문에 == 를 통해서는 true를 출력하겠지만,

=== 을 통해 자료형 자체가 다르다 라는걸 알 수 있습니다.

반응형