Notice
Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Today
Total
관리 메뉴

차차로그

JS null, undefined + isNaN() 본문

JavaScript

JS null, undefined + isNaN()

차차한 2022. 8. 1. 16:52

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