본문 바로가기

Study Record/Javascript

[JavaScript] undefined&null&NaN와 Typeof 연산자

* 이 글은 Udemy의 "JavaScript 완벽 가이드 : 초급 + 고급 마스터 과정" 강의를 수강한 뒤 개인 복습을 위해 정리하는 글입니다.

(섹션 2: 48~49)

 

 

 

 


 

 

 

 

undefined, null, NaN은 비슷한 듯하지만 쓰임과 유형이 모두 다르다. 각각에 대해서 자세히 알아보자.

 

 

 

 

 

undefined

 

초기화되지 않은 변수의 기본 값 (아무것도 없음을 나타내는 값)

 

 

변수를 생성한 후에 등호로 값을 할당하지 않거나 요소를 생성하지 않은 인덱스에서 배열 요소에 접근하려고 할 때 뜬다.

 

이때 주의해야 할 점은 undefined가 데이터 유형이긴 하지만 직접 값으로 할당하면 안 된다는 것이다. 그 이유는 값을 할당한 적이 없을 경우의 기본 값이기 때문이기 때문이다.

 

 

 

예시를 통해 알아보자.

 

 

userName이라는 변수를 선언해준 뒤 초기화를 하지 않았으므로 값이 할당되지 않아 기본값인 undefined가 출력된다.

 

 

 

따라서 다음과 같이 값을 할당해주면 undefined가 더 이상 나오지 않고 할당된 값이 나오게 된다.

 

 

 

 

 

 

 

null

 

데이터가 없다는 의미 , 빈데이터

 

undefined와 유사하지만 undefined는 변수 등에 새로운 값을 할당하지 않은 경우의 기본값을 나타내지만 null은 절대 기본 값이 될 수 없다. 해당 값을 사용하려면 무언가를 null로 설정해줘야 한다.

null의 쓰임은 변수를 재설정하거나 정리하고 싶을 때이다.

 

 

예시를 통해 알아보자.

 

 

null을 변수에 대입을 해주면 그 변수는 빈 데이터가 되고 null이 출력된다.

 

null은 기본값이 될 수 없으므로 새로운 변수에 값이 할당되지 않았을 때 나타나는 것이 아니라 null을 변수에 직접 대입해줌으로써 빈 데이터로 만드는 것이다.

 

 

 

정리를 하면,

null & undefined는 값인 동시에 데이터 유형이지만 서로 다르다.

undefined는 특수 유형으로, 정의되지 않은 변수의 기본 값이고,  null은 객체 유형이지만 기본값은 아니다.

 

 

 

 

 

 

NaN

 

일종의 오류 코드

 

 

자체 유형이 아니라 숫자 유형이기 때문에 숫자를 사용하는 계산에 사용할 수 있다. 숫자가 포함되지 않은 무언가로 계산을 실행하고자 하는 경우 결과가 NaN으로 나온다. 그 계산의 결과가 유효하지 않다는 의미가 된다.

 

 

 

사용 예시는 다음과 같다.

 

 

첫 번째 줄은 숫자와 문자가 곱해져 계산이 유효하지 않으므로 NaN이 출력되고 두 번째 줄은 3과 NaN이 곱해져 마찬가지로 계산이 유효하지 않아 NaN이 출력된다.

 

 

 

 

 


 

 

 

 

typeof  연산자

 

런타임에서 변수 유형을 평가할 수 있게 해 주는 연산자

 

 

 

 

typeof 사용 방법

typeof 평가하고 싶은 변수 이름이나 하드 코딩된 값

 

 

 

ex)

typeof 'Max'

-> string

typeof 1

-> number