JavaScript/3주차-데이터타입, 실행컨텍스트, this
5. null과 undefined
sangwoo_rhie
2023. 5. 25. 17:06
null과 undefined
1. undefined
자바스크립트에서 undefined가 나오는 경우 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로 나온다.