Baseline Widely available
isNaN()
í¨ìë ì´ë¤ ê°ì´ NaN
ì¸ì§ íë³í©ëë¤. isNaN
í¨ìë ëªëª í¼ëì¤ë¬ì´ ì¼ì´ì¤ì ê°ì§ê³ ìì¼ë¯ë¡, ECMAScript 2015ìì ì¶ê°í Number.isNaN()
ì¼ë¡ ë°ê¾¸ë í¸ì´ ì¢ì ìë ììµëë¤.
function milliseconds(x) {
if (isNaN(x)) {
return "Not a Number!";
}
return x * 1000;
}
console.log(milliseconds("100F"));
// Expected output: "Not a Number!"
console.log(milliseconds("0.0314E+2"));
// Expected output: 3140
구문 매ê°ë³ì
value
í ì¤í¸ëë ê°.
주ì´ì§ ê°ì´ NaN
ì´ë©´ true
, ìëë©´ false
.
isNaN
í¨ìì íìì±
JavaScriptì ë¤ë¥¸ 모ë ê°ê³¼ ë¬ë¦¬, NaN
ì ê°ì ì°ì°(==
, ===
)ì ì¬ì©í´ íë³í ì ììµëë¤. NaN == NaN
, NaN === NaN
ì false
ë¡ íê°ë기 ë문ì
ëë¤. ê·¸ëì NaN
ì íë³íë í¨ìê° íìí©ëë¤.
NaN
ê°ì 기ì
NaN
ê°ì ì°ì ì°ì°ì´ ì ìëì§ ìì ê²°ê³¼ ëë ííí ì ìë 결과를 ëì¶íë©´ ìì±ëë©°, ë°ëì ì¤ë²íë¡ ì¡°ê±´ì ëíë´ë ê²ì ìëëë¤. ì«ìê° ìë ê°ì ë³íì ìëíì¼ë ìë§ì ìì ì«ì ê°ì´ ìë ê²½ì°ì ê²°ê³¼ë NaN
ì
ëë¤.
ì를 ë¤ì´ 0ì 0ì¼ë¡ ëëë©´ NaN
ì´ì§ë§, ë¤ë¥¸ ì를 0ì¼ë¡ ëëë©´ ê·¸ë ì§ ììµëë¤.
isNaN
í¨ì ì¤íì ì주 ì´ê¸° ë²ì ì´íë¡, ì«ì ìë ì¸ì를 ìí íëì´ í¼ëì¤ë½ìµëë¤. isNaN
í¨ìì ì¸ìê° Number íì´ ìë ê²½ì°, ê·¸ ê°ì 먼ì ì«ìë¡ ê°ì ë©ëë¤. ê²°ê³¼ê°ì ê·¸ ë¤ì NaN
ì¸ì§ ê²°ì í기 ìí´ í
ì¤í¸ë©ëë¤. ë°ë¼ì ì«ì íì¼ë¡ ê°ì ë ê²°ê³¼ ì í¨í ë¹ NaN ì«ìê°(í¹í ê°ì ë ë ì«ìê°ì´ 0 ëë 1ì 주ë ë¹ ë¬¸ìì´ ë° ë¶ë¦° ììí)ì´ ëë ë¹ ì«ìì ê²½ì°, "false" ë°íê°ì ìê¸°ì¹ ìì ì ììµëë¤; ì를 ë¤ì´ ë¹ ë¬¸ìì´ì ë¶ëª
í "not a number"ì
ëë¤. í¼ë(confusion)ì ì©ì´ "not a number"ê° IEEE-754 ë¶ë ììì ê°ì¼ë¡ ííë ì«ìì í¹ì ìë¯¸ê° ìë¤ë ì¬ì¤ìì ìê¹ëë¤. í¨ìë "ì´ ê°ì´, ì«ìê°ì¼ë¡ ê°ì ëë ê²½ì°, IEEE-754 'Not A Number' ê°ì¸ê°?"ë¼ë ì§ë¬¸ì ëµíë ê²ì¼ë¡ í´ìëì´ì¼ í©ëë¤.
ECMAScript (ES2015) ìµê·¼ ë²ì ì Number.isNaN()
í¨ì를 í¬í¨í©ëë¤. Number.isNaN(x)
ë x
ê° NaN
ì¸ì§ ìëì§ í
ì¤í¸íë 믿ì ì ìë ë°©ë²ì´ ë©ëë¤. ê·¸ë¬ë Number.isNaN
ì¼ë¡ë, NaN
ì ì미ë ì íí ì«ì ìë¯¸ë¡ ë¨ììê³ ë¨ìí "not a number"ë ìëëë¤. ê·¸ ëì ì, Number.isNaN
ì´ ìì ê²½ì°ì, ì (x != x)
ì ë³ì x
ê° NaN
ì¸ì§ ìëì§ í
ì¤í¸íë ë 믿ì ì ìë ë°©ë²ì
ëë¤, ê·¸ ê²°ê³¼ë isNaN
ì 믿ì ì ìê² íë ì¤í(false positive)ì ëìì´ ìë기ì.
ë¹ì ì isNaNì ë¤ìê³¼ ê°ì´ ìê°í ì ììµëë¤:
isNaN = function (value) {
Number.isNaN(Number(value));
};
ìì
isNaN(NaN); // ì°¸
isNaN(undefined); // ì°¸
isNaN({}); // ì°¸
isNaN(true); // ê±°ì§
isNaN(null); // ê±°ì§
isNaN(37); // ê±°ì§
// 문ìì´
isNaN("37"); // ê±°ì§: "37"ì NaNì´ ìë ì«ì 37ë¡ ë³íë©ëë¤
isNaN("37.37"); // ê±°ì§: "37.37"ì NaNì´ ìë ì«ì 37.37ë¡ ë³íë©ëë¤
isNaN("123ABC"); // ì°¸: parseInt("123ABC")ë 123ì´ì§ë§ Number("123ABC")ë NaNì
ëë¤
isNaN(""); // ê±°ì§: ë¹ ë¬¸ìì´ì NaNì´ ìë 0ì¼ë¡ ë³íë©ëë¤
isNaN(" "); // ê±°ì§: ê³µë°±ì´ ìë 문ìì´ì NaNì´ ìë 0ì¼ë¡ ë³íë©ëë¤
// dates
isNaN(new Date()); // ê±°ì§
isNaN(new Date().toString()); // ì°¸
// ì´ê²ì´ íì ìì±ì´ê³ isNaNì´ ìì í ì 뢰í ì ìë ì´ì ì´ë¤.
isNaN("blabla"); // ì°¸: "blabla"ë ì«ìë¡ ë³íë©ëë¤.
// ì´ê²ì ì«ìë¡ parsing íë ê²ì ì¤í¨íê³ NaNì ë°ííë¤.
ì ì©í í¹ë³ ì¼ì´ì¤ íë
isNaN()
ì ê³ ë ¤í ë ì©ë ì¤ì¬ ë°©ë²ì´ ììµëë¤: isNaN(x)
ê° false
를 ë°ííë©´, ê·¸ ìì´ NaN
ì ë°ííê² íì§ ìê³ ì°ì ìì x
를 ì¸ ì ììµëë¤. true
를 ë°ííë ê²½ì°, x
ë 모ë ì°ì ìì´ NaN
ì ë°ííê² í©ëë¤. ì´ë JavaScriptìì, isNaN(x) == true
ê° NaN
ì ë°ííë x - 0
ê³¼ ëì¼í¨(JavaScriptìì x - 0 == NaN
ê° íì ê±°ì§ì ë°ííì¬ ê·¸ê²ì í
ì¤í¸í ì ìì§ë§)ì ë»í©ëë¤. ì¤ì ë¡, isNaN(x)
, isNaN(x - 0)
, isNaN(Number(x))
, Number.isNaN(x - 0)
ë° Number.isNaN(Number(x))
ë íì ê°ì ê°ì ë°ííë©° JavaScriptìì isNaN(x)
ë ê·¸ì ì´ë¬í ê°ê°ì ì¡°ê±´(terms)ì íííë ê°ì¥ ì§§ì ííì
ëë¤.
ì를 ë¤ì´ í¨ìì ì¸ìê° ì°ì ì²ë¦¬ ê°ë¥í(ì«ì "ì²ë¼" ì¸ ì ìë)ì§ë¥¼ í ì¤í¸í기 ìí´ ì¬ì©í ì ììµëë¤, ê·¸ë ì§ ìì ê²½ì° ê¸°ë³¸ ê° ëë ë¤ë¥¸ 무ì¸ê°ë¥¼ ì ê³µí´ì¼ í©ëë¤. ì´ë° ìì¼ë¡ 문맥ì ë°ë¼ ììì ì¸ ê° ë³íì ì ê³µíë JavaScriptì ë¤ìì±(versatility) ì 체를 ì´ì©ì¼ íë í¨ì를 ê°ì§ ì ììµëë¤.
ììfunction increment(x) {
if (isNaN(x)) x = 0;
return x + 1;
}
// Number.isNaN()ê³¼ ê°ì í¨ê³¼:
function increment(x) {
if (Number.isNaN(Number(x))) x = 0;
return x + 1;
}
// í¨ìì ì¸ì xì ëí´ ë¤ì ê²½ì°ì,
// isNaN(x)ë íì ê±°ì§, xê° ì¤ì ì«ìê° ìëì§ë¼ë
// íì§ë§ ì°ì ìì ê·¸ëë¡
// ì¬ì©ë ì ììµëë¤
increment(""); // 1: ""ë 0ì¼ë¡ ë³íë©ëë¤
increment(new String()); // 1: ë¹ ë¬¸ìì´ì ëíë´ë String ê°ì²´ë 0ì¼ë¡ ë³íë©ëë¤
increment([]); // 1: []ë 0ì¼ë¡ ë³íë©ëë¤
increment(new Array()); // 1: ë¹ ë°°ì´ì ëíë´ë Array ê°ì²´ë 0ì¼ë¡ ë³íë©ëë¤
increment("0"); // 1: "0"ì 0ì¼ë¡ ë³íë©ëë¤
increment("1"); // 2: "1"ì 1ë¡ ë³íë©ëë¤
increment("0.1"); // 1.1: "0.1"ì 0.1ë¡ ë³íë©ëë¤
increment("Infinity"); // Infinity: "Infinity"ë Infinityë¡ ë³íë©ëë¤
increment(null); // 1: nullì 0ì¼ë¡ ë³íë©ëë¤
increment(false); // 1: falseë 0ì¼ë¡ ë³íë©ëë¤
increment(true); // 2: trueë 1ë¡ ë³íë©ëë¤
increment(new Date()); // ë°ë¦¬ì´ë¡ íì¬ date/time + 1ì ë°íí©ëë¤
// í¨ìì ì¸ì xì ëí´ ë¤ì ê²½ì°ì,
// isNaN(x)ë íì ê±°ì§ì´ê³ xë ì¤ì ë¡ ì«ìì
ëë¤
increment(-1); // 0
increment(-0.1); // 0.9
increment(0); // 1
increment(1); // 2
increment(2); // 3
// ... ë±ë± ...
increment(Infinity); // Infinity
// í¨ìì ì¸ì xì ëí´ ë¤ì ê²½ì°ì,
// isNaN(x)ë íì ì°¸ì´ê³ xë ì¤ì ë¡ ì«ìê° ìëëë¤,
// ë°ë¼ì í¨ìë ì¸ì를 0ì¼ë¡ ëì²´íê³ 1ì ë°íí©ëë¤
increment(String); // 1
increment(Array); // 1
increment("blabla"); // 1
increment("-blabla"); // 1
increment(0 / 0); // 1
increment("0/0"); // 1
increment(Infinity / Infinity); // 1
increment(NaN); // 1
increment(undefined); // 1
increment(); // 1
// isNaN(x)ë íì isNaN(Number(x))ê³¼ ê°ì§ë§,
// xì ì¡´ì¬ë ì¬ê¸°ì íìì
ëë¤!
isNaN(x) == isNaN(Number(x)); // x == undefined í¬í¨ xì ì´ë¤ ê°ë ì°¸,
// isNaN(undefined) == true ë° Number(undefined)ê° NaNì ë°íí기ì,
// íì§ë§ ...
isNaN() == isNaN(Number()); // ê±°ì§, isNaN() == true ë° Number() == 0 ë문ì
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4