Number.isNaN()

Number.isNaN() λ©”μ„œλ“œλŠ” μΈμžκ°’μ΄ NaN 인지 νŒλ³„ν•˜κ³  νƒ€μž…μ΄ Number 인지도 νŒλ³„ν•œλ‹€. μ „μ—­ isNaN() 보닀 더 κ°•λ ₯ν•œ 버전이닀. μˆ«μžκ°€ μ•„λ‹ˆλ‹€ λœ»μ„ μ˜λ―Έν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ NaN μ΄λƒλŠ” μ˜λ―Έμ΄λ‹€.

function typeOfNaN(x) {
  if (Number.isNaN(x)) return 'Number NaN';

  if (isNaN(x)) return 'NaN';
}

typeOfNaN('100F'); // 'NaN'

typeOfNaN(NaN); // 'Number NaN'

Syntax

Number.isNaN(value)

Parameters

value

NaN 인지 νŒλ³„ν•΄μ•Όν•˜λŠ” κ°’

Return value

μ£Όμ–΄μ§„ 값이 Number νƒ€μž…μ΄κ³  NaN 이면 true λ₯Ό λ°˜ν™˜ν•œλ‹€. μ•„λ‹ˆλ©΄ `falseβ‚©

Description

NaN 이 NaN 인지 계산할 λ•Œ, 두 동일 μ—°μ‚°μž == κ³Ό === λͺ¨λ‘ false 둜 ν‰κ°€λœλ‹€. NaN == NaN κ³Ό NaN === NaN 은 false 이닀. NaN 이 NaN 인지 νŒλ³„ν•˜κΈ° μœ„ν•΄μ„  Number.isNaN() 이 ν•„μˆ˜ μš”μ†Œμ΄λ‹€. 이 κ²½μš°λŠ” JavaScriptμ—μ„œ μžˆμ„ 수 μžˆλŠ” λ‹€λ₯Έ λͺ¨λ“  κ°’μ˜ λΉ„κ΅μ™€λŠ” λ‹€λ₯΄λ‹€.

μ „μ—­ isNaN() ν•¨μˆ˜μ™€ 달리 Number.isNaN() λŠ” κ°•μ œλ‘œ μΈμˆ˜κ°€ 숫자둜 λ³€ν™˜λ˜μ§€ μ•ŠλŠ”λ‹€. NaN 으둜 λ³€ν™˜ν•˜μ—¬ 값이 μ•ˆμ „ν•˜κ²Œ μ „λ‹¬λ˜μ§€λ§Œ, 이것은 NaN 이 μ•„λ‹Œλ‹€. 였직 Number ν˜•μ΄κ³  NaN 일 λ•Œλ§Œ true λ₯Ό λ°˜ν™˜ν•œλ‹€.

Examples

Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true

// e.g isNaN() μ΄μ—ˆλ‹€λ©΄ trueλ₯Ό λ°˜ν™˜ν•œλ‹€.
// λ“€μ–΄μ˜¨ 값이 정말 NaN 인지λ₯Ό νŒλ³„ν•œλ‹€.
Number.isNaN("NaN"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN('blabla'); // false

// 이 λͺ¨λ“ κ²ƒμ€ falseλ₯Ό λ°˜ν™˜ν•œλ‹€.
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN('37');
Number.isNaN('37 37');
Number.isNaN('');
Number.isNaN(' ');

Polyfill

Number.isNaN = Number.isNaN || function isNaN(input) {
  return typeof input === 'number' && input !== input;
}

정말 NaN의 특이점인데 NaN !== NaN 은 true 이닀.

Last updated

Was this helpful?