자바스크립트 함수 호출시 null과 undefined 에 대한 정리

By | 12월 6, 2011

* 자바스크립트 함수 호출시 인수를 생략하고 호출할 경우와 인수에 null 을 넣고 호출할 경우,
  함수 내부에서는 어떻게 해석하는지, 또 null과 undefined는 어떤 관계가 있는지 살펴보자.

function test(arg){

   var isNullValue            = (arg == null);
   var isUndefinedValue  = (arg == undefined);
   var isNull                   = (arg === null);
   var isUndefined         = (arg === undefined);
   console.log('arg:' + arg + ', isNullValue:'+ isNullValue + ', isUndefinedValue:'+isUndefinedValue
                                    + ', isNull:'+ isNull + ', isUndefined:'+isUndefined);
}

* test() 로 호출할 경우 결과 (인수 생략)

   => arg:undefined, isNullValue:true, isUndefinedValue:true, isNull:false, isUndefined:true

* test(null) 로 호출할 경우 결과

   => arg:null, isNullValue:true, isUndefinedValue:true, isNull:true, isUndefined:false

* 결론

   - 함수 호출시 입력되지 않은 인수를 참조할 경우 undefined 로 인식한다.
   - 함수 호출시 null 을 인수로 넘기면 함수 내부에서 해당 인수를 참조할 경우 null 로 인식한다.
   - null 과 undefined를 값으로 비교했을 경우(==) 같은 값이다.
   - null 과 undefined를 값과 데이터형식까지 비교했을 경우(===) 다른 값이다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments