반응형
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 |