2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

자바스크립트에서 Number.isNaN()의 사용법은 무엇인가요?

_____
Q1: Number.isNaN()란 무엇인가요?
A1: `Number.isNaN()`은 주어진 값이 정확히 `NaN`(Not-a-Number)인지 여부를 판별하는 자바스크립트 내장 함수입니다. 기존의 전역 함수 `isNaN()`과 달리, 엄격하게 값 자체가 `NaN`인지 검사합니다.

---

Q2: Number.isNaN()의 기본 사용법은 어떻게 되나요?
A2:
```javascript
Number.isNaN(value);
```
- `value`: 검사할 값
- 반환값: 만약 `value`가 정확히 `NaN`이면 `true`, 아니면 `false` 반환

---

Q3: 예시를 통해 설명해 주세요.
A3:
```javascript
Number.isNaN(NaN); // true
Number.isNaN(123); // false
Number.isNaN('NaN'); // false
Number.isNaN(undefined); // false
Number.isNaN('hello'); // false
Number.isNaN(0 / 0); // true (0/0은 NaN)
```

---

Q4: 전역 isNaN()과 Number.isNaN()의 차이점은 무엇인가요?
A4:
- `isNaN()`는 인자로 받은 값을 숫자로 변환 후 검사하기 때문에, 숫자가 아닌 문자열 등도 `true`일 수 있습니다.
- 반면, `Number.isNaN()`는 타입 변환 없이 값 자체가 `NaN`인지 엄격하게 검사합니다.
```javascript
isNaN('hello'); // true (문자열 'hello'는 숫자가 아니므로)
Number.isNaN('hello'); // false ('hello'는 NaN이 아님)
```

---

Q5: 언제 Number.isNaN()을 사용해야 하나요?
A5:
값이 실제로 `NaN`인지 확인할 때 사용하면 좋습니다. 특히, `isNaN()`가 타입 변환으로 인해 오탐지를 할 수 있기 때문에, 더 정확한 검사가 필요할 때 `Number.isNaN()`을 권장합니다.

---

Q6: Number.isNaN()가 지원되는 환경은 어떻게 되나요?
A6:
ECMAScript 2015(ES6) 이후 버전에서 지원됩니다. 최신 브라우저 및 Node.js에서 모두 사용할 수 있으며, 구형 환경에서는 폴리필을 사용해야 할 수 있습니다.

---

Q7: Number.isNaN()와 isNaN() 대신 사용할 수 있는 다른 방법이 있나요?
A7:
다음과 같이 비교할 수 있지만, `Number.isNaN()`가 가장 안전하고 권장되는 방법입니다.
```javascript
function isReallyNaN(value) {
return typeof value === 'number' && isNaN(value);
}
```

---

요약
- `Number.isNaN(value)`는 값이 타입 변환 없이 정확히 `NaN`인지 알려준다.
- 일반 `isNaN()`보다 더 엄격하고 안전하게 `NaN`을 검사할 때 사용한다.
- ES6 이상 환경에서 지원되며, 구형 브라우저는 폴리필 필요할 수 있다.
`Number.isNaN()`은 JavaScript에서 숫자 값이 `NaN`인지 여부를 판단하는 데 사용되는 메서드입니다.

이 메서드는 ECMAScript 2015(ES

6)에서 도입되었으며, `NaN`은 "Not-a-Number"의 약자로, 수치 연산에서 정의할 수 없는 값이나 계산 결과를 나타냅니다.

예를 들어, 0으로 나누기, 문자열을 숫자로 변환할 수 없을 때 등이 있습니다.

사용법`Number.isNaN()` 메서드는 다음과 같은 형식으로 사용됩니다:```javascriptNumber.isNaN(value);```- value : 검사할 값입니다.

이 메서드는 주어진 값이 `NaN`일 경우 `true`를 반환하고, 그렇지 않으면 `false`를 반환합니다.

중요한 점은 `Number.isNaN()`은 인자로 전달된 값이 실제로 `NaN`일 때만 `true`를 반환한다는 것입니다.

이는 `global.isNaN()`과의 주요 차이점입니다.

`global.isNaN()`은 인자로 전달된 값이 숫자로 변환할 수 없는 경우에도 `true`를 반환합니다.

예제1. 기본 사용법 ```javascriptconsole.log(Number.isNaN(NaN)); // trueconsole.log(Number.isNaN(12

3)); // falseconsole.log(Number.isNaN('hello')); // falseconsole.log(Number.isNaN(undefined)); // falseconsole.log(Number.isNaN(null)); // false```2. 타입 체크 `Number.isNaN()`은 값의 타입을 체크하여 `NaN`인지 확인합니다.

예를 들어, 문자열이나 객체는 `NaN`으로 간주되지 않습니다.

```javascriptconsole.log(Number.isNaN('NaN')); // falseconsole.log(Number.isNaN({})); // falseconsole.log(Number.isNaN([])); // false```3. `global.isNaN()`과의 차이점 `global.isNaN()`은 인자가 숫자로 변환될 수 없는 경우에도 `true`를 반환합니다.

예를 들어:```javascriptconsole.log(isNaN(NaN)); // trueconsole.log(isNaN('hello')); // trueconsole.log(isNaN(undefined)); // trueconsole.log(isNaN(null)); // falseconsole.log(isNaN(12

3)); // false```반면, `Number.isNaN()`은 오직 `NaN`인 경우에만 `true`를 반환합니다.

결론`Number.isNaN()`은 JavaScript에서 `NaN`을 정확하게 판단하는 데 유용한 메서드입니다.

이 메서드를 사용하면 코드의 가독성을 높이고, 의도치 않은 타입 변환으로 인한 오류를 방지할 수 있습니다.

따라서 숫자 값의 유효성을 검사할 때는 `Number.isNaN()`을 사용하는 것이 좋습니다.

작성자: 정서현 [비회원] | 작성일자: 1년 전 2024-09-08 14:47:29
조회수: 386 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.