[JavaScript] 데이터 타입(undefined, null)


undefined


undefined의 경우, 변수는 존재하지만 값을 저장하지 않아서 타입을 모를 경우이다. 직접 값을 비교할 수 있다.


var msg1;
if (msg1 == undefined) console.log("변수 존재하지만 값이 없다..");
 
var msg2 = 20;
    msg2 = undefined; // 존재하는 변수를 undefined로 만들 수 있다.
cs









null


null은 특정 객체를 가리키지 않음을 지정할 때 null을 사용한다. null또한 직접 값을 비교할 수 있다.


var msg3 = null;
if (msg3 == null) console.log("msg3은 null 상태임");
console.log(typeof(null)); // typeof 연산자를 null에 사용하면 object를 반환 한다.
cs




null은 특수하게 typeof 연산자를 null에 사용하면 object를 반환 한다. 그 결과로 볼 때 null은 '객체가 없음'을 뜻하는 특수한 객체 값으로 생각할 수 있다. 하지만 실무에서 null은, 값이 null 하나뿐인 어떤 고유한 자료형에 속한 것으로 간주되며, 객체뿐 아니라 수나 문자열 "값이 없음"을 나타내는 데도 쓰인다.





undefined와 null의 관계와 사용법

둘의 typeof의 연산자의 값은 다르지만 동치연산자(==)를 사용하면 두 값이 같다고 간주한다.


console.log(undefined == null); // true
console.log(undefined === null); // false
cs

그래서 엄격한 동치 연산자(===)를 사용해야 한다. null과 undefined는 둘 다 false로 판정되는 값이며 불리언 값 false로 변환된다. 


둘의 사용방법의 차이는 undefined는 시스템 수준에서 예기치 않은 상황에 발생한, 오류성 값 부재를 표현할 때 사용 하고 null은 일반적인 프로그램 수준에서 예상 가능한 값 부재 상황을 표현하고 싶을 때는 null을 사용한다. 만약 이들 값 중 하나를 변수나 프로퍼티에 할당할 필요가 있거나 함수로 인자로 전달할 필요가 있다면, undefined보다는 null을 사용하는 게 적절하다.  




데이비드 플래너건, 자바스크립트 완벽, 인사이트(2013)

손병찬 선생님, 비트캠프(2017)

댓글

Designed by JB FACTORY