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?