sangwoo_rhie 2023. 5. 25. 17:06

 

 

null과 undefined

 

1. undefined

자바스크립트에서 undefined가 나오는 경우 3가지

  1. 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
  2. .이나 [ ]로 접근하려 했는데, 해당 데이터가 존재하지 않는 경우
  3. function인데 return 문이 없거나 호출되지 않는 함수의 실행 결과

 

 

undefined 예시

(1) 값을 대입하지 않은 변수에 접근

var a;
console.log(a);


(2) 존재하지 않는 property에 접근

var obj = { a: 1 };
console.log(obj.a); // 1
console.log(obj.b); // 존재하지 않는 property에 접근
// console.log(b); // 오류 발생


(3) 반환 값이 없는 function

var func = function() { };
var c = func(); // 반환 값이 없는 function
console.log(c); // undefined

 

2. null

개발자가 의도적으로 '없다' 를 명시하기 위해 쓰는 값.

typeof null 하면 null이 나와야 하는데 object로 나온다. 이는 자바스크립트 버그임.

 

동등연산자와 일치연산자 복습!

 

var n = null;
console.log(typeof n); // object


//동등연산자(equality operator)
console.log(n == undefined); // true
console.log(n == null); // true


//일치연산자(identity operator)
console.log(n === undefined);
console.log(n === null);

== 동등연산자 (값이 같다)

=== 일치연산자 (값뿐만 아니라 형태도 같다, 문자열, 숫자열 등.)

 

null과 undefined는 서로 값이 없다는 점에서 동등연산자(==) 비교시 true로 나온다.

하지만 일치연산자(===) 비교시, 서로 형태가 다르므로 false로 나온다.