-
5. null과 undefinedJavaScript/3주차-데이터타입, 실행컨텍스트, this 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로 나온다.
'JavaScript > 3주차-데이터타입, 실행컨텍스트, this' 카테고리의 다른 글
7. Record와 호이스팅 (0) 2023.05.25 6. 실행 컨텍스트(스코프, 변수, 객체, 호이스팅), 콜 스택 (0) 2023.05.25 4. 불변 객체 (깊은 복사 얕은 복사) (0) 2023.05.25 3. 변수 선언과 데이터 할당 (참조형 데이터) (0) 2023.05.25 2. 변수 선언과 데이터 할당 (기본형 데이터) (0) 2023.05.25