자바스크립트 NaN

2022. 5. 27. 19:34·JavaScript
반응형
console.log("nan" - 1);
// 결과: NaN
// (+ 연산을 하면 nan1이 출력된다.)

이렇게 숫자가 아닌 문자열과 숫자를 연산하려고 하면 발생하는 에러메시지 NaN 무슨뜻일까?

정답은 Not-a-Number라는 뜻이다.

NaN에는 어떤 연산을 해도 NaN이 반환된다.

그래서 연산과정에서 NaN이 나오지 않게 주의해야 한다.

 

어떤 값이 NaN인지 알기 위해서는 

isNaN(), Number.isNaN() 함수를 사용하면 된다.

(NaN은 ==나 ===연산자로 비교불가하다!)

NaN === NaN;        // false
// NaN은 비교 연산자( ==, !=, ===, and !==)와 비교하면 어떤 값과도 같지 않다고 나온다.
isNaN(NaN);         // true
Number.isNaN(NaN);  // true

 

isNaN()과 Number.isNaN()은 둘다 NaN을 판별할 때 사용하지만 완전 같은 함수는 아니다.

isNaN()은

1. 값이 현재 NaN이거나

2. 현재 값을 숫자로 형변환했을 때 NaN이 반환된다면 true를 반환하고,

Number.isNaN()은 값이 현재 NaN일 때만! true를 반환한다.

isNaN('문자열');          // true
isNaN('문자열'-1);        // true
isNaN(NaN);             // true

Number.isNaN('문자열');   // false
Number.isNaN('문자열'-1); // true
Number.isNaN(NaN);      // true

 

 

(NaN을 사용할때 대소문자 주의....Number.isNan()이라고 적었다가 오류가 났다....)

 

참고한 페이지

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN

 

NaN - JavaScript | MDN

The global NaN property is a value representing Not-A-Number.

developer.mozilla.org

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'JavaScript' 카테고리의 다른 글

자바스크립트 | 속성 접근자 .(dot notation), [](bracket notation)  (0) 2022.06.18
자바스크립트 문자열 합치기 + 자동 형변환, 명시적 형변환  (0) 2022.05.30
자바스크립트 null / undefined  (0) 2022.05.26
자바스크립트 변수선언 const / let / var  (0) 2022.05.25
자바스크립트 세미콜론(;)  (0) 2022.05.25
'JavaScript' 카테고리의 다른 글
  • 자바스크립트 | 속성 접근자 .(dot notation), [](bracket notation)
  • 자바스크립트 문자열 합치기 + 자동 형변환, 명시적 형변환
  • 자바스크립트 null / undefined
  • 자바스크립트 변수선언 const / let / var
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
자바스크립트 NaN
상단으로

티스토리툴바