차차로그
JS null, undefined + isNaN() 본문
null과 undefined의 공통점
둘다 각각의 타입명의 값이 유일하다.
null 타입의 값은 null, undefined 타입의 값은 undefined 뿐
null
프로그래밍에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더이상 참조하지 않는다는 뜻
// foo 변수에 'variable' 값을 더이상 참조하지 않을 것을 의미한다.
let foo = 'variable';
foo = null;
// null의 타입을 확인하면 객체Object를 반환한다.
var nullType = null;
console.log(typeof nullType); // Object
// null은 NaN? false 반환
console.log(isNaN(null)); // false
isNaN은 단순히 숫자인 것을 확인해주는 함수가 아니다.
정확히는 숫자로 변환을 한 후에 그것이 숫자가 되는지에 따라 t/f를 반환하는데 null을 숫자로 변환하게 되면 0을 반환한다.
때문에 isNaN(null)을 하면 0으로 확인이 되기 때문에 숫자라는 의미에서 false를 반환한다.
console.log(isNaN()); //true
console.log(isNaN(1)); //false
console.log(isNaN(1.23)); //false
console.log(isNaN('a')); //true
console.log(isNaN('1')); //false
console.log(isNaN('')); //false : 숫자 변환 시 0
console.log(isNaN(' ')); //false : 숫자 변환 시 0
console.log(isNaN(false)); //false : 숫자 변환 시 0
console.log(isNaN(true)); //false : 숫자 변환 시 1
undefined
변수를 선언하고 값을 할당하지 않은 상태에서 변수를 참조하면 undefined를 반환한다.
var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.
var foo;
console.log(foo); // undefined
var foo;
console.log(typeof foo); // undefined
console.log(isNaN(undefined)); // true
undefined는 null과 달리 개발자가 의도적으로 할당하는 값이 아닌 JS엔진이 변수를 초기화할 때 사용하는 값이다.
'JavaScript' 카테고리의 다른 글
JS 배열 값 추가, 삭제하기 (0) | 2022.08.08 |
---|---|
자바스크립트 addDate() 만들기 (0) | 2022.08.05 |
JS 실행순서 (0) | 2022.07.29 |
JS변수 var / let / const (0) | 2022.07.25 |
JS Hoisting(호이스팅), Scope(스코프) (0) | 2022.07.25 |
Comments