NaNã¯ãNotaNumberããè¡šãããããã®å Žåã®isNumberãã§ãã¯ã¯falseãè¿ãå¿ èŠãããããã§ãã ä»ã®è°è«ãããããã¯å®éã«ã¯æå³çãªãã®ã§ããããšã«æ°ã¥ããŸããã ãã¶ããããã¥ã¡ã³ãã¯ãã®äºå®ãæ瀺çã«åæ ããå¿ èŠããããŸãã
ããã§ããããã¯æ
æã§ãã ãããŠãç§ã¯ãããæ確ã«è¿°ã¹ãå¿
èŠã¯ãªããšæããŸãã ãããŸã§IEEE754æµ®åå°æ°ç¹ã䜿çšããããšããã人ãªã誰ã§ããããããNaN
ãåãªãå¥ã®æµ®åå°æ°ç¹å€ã§ããããšãç¥ã£ãŠããŸãã
é¢é£ïŒïŒ321ã§ã®è°è«
ç§ãäžè¬çãªWebã¿ã¹ã¯ãå®è¡ããŠãããšããisNumberãšããååã®é¢æ°ã¯ãèŠã€ãã£ãå€ããããã¯æ°å€ã§ããïŒããšããäžè¬çãªãŠãŒã¶ãŒå®çŸ©ã«çãããã©ããã確èªããè¯ãæ¹æ³ã®ããã«æããŸãã
ããã«ãNaNå€ã¯ãèšç®ã劚ããå€ãç¹å®ããã®ã«åœ¹ç«ã€ããã«ãæåã«å°å ¥ãããããã«æãããŸãã ä»æ§ã®ç²Ÿç¥ã§ã¯ããããã¯æ°åã§ããïŒããšãã質åããããšãæ£è§£ã®ããã«èŠããŸãã å®éãããã¯ãæ°ã§ã¯ãªãããšããããšã§ãã ãã®è³ªåã«å¯Ÿããçããçã«ãããäžè¬çãªäŸãæããŠããã ããã°ãããã§é»ããŸã:)
ããªãã¯isFinite
ãæ¢ããŠããŸãããã
ããŠãç§ã¯åçŽãªåé¡ããå§ããŸããã æååãæ°å€ãå Žåã«ãã£ãŠã¯NaNã®å ¥åããããŸãã parseIntãšisFiniteã䜿çšããŠparseintãæåãããã©ããããã¹ããããããŒã¹JavaScriptã®ç°¡åãªãœãªã¥ãŒã·ã§ã³ããããŸãã åçŽã§ãããå®å šã«ã¯ãªãŒã³ã§ã¯ãªããç§ã®ç®æšãèªæã§ã¯ãããŸããã ããã§ãç§ã¯ãããã®çš®é¡ã®ã¿ã¹ã¯ãå®è¡ããããã«ç§ã®å®å šã«çŽ æŽãããgotoã©ã€ãã©ãªã䜿çšããããšã«ããŸããã æåã®æ€æ»ã§ãå€ãåãããããæ°å€ã§ãããã©ããã瀺ãé¢æ°ãèŠã€ããŸãããããã¯ãç§ã®äžè¬çãªå®çŸ©ã§ã¯ãç§ã欲ãããšæããã®ã§ãã
ãŸããããã«ãããããã¥ã¡ã³ãã«è¡ãè¿œå ããããšã§ãã©ã€ãã©ãªã®ãŠãŒã¶ãŒãæåã«ãžã§ãã«é©åãªæ©èœãååŸããã®ã«ã©ã®ããã«åœ¹ç«ã€ããããããŸããïŒ æ¬¡ã«ããããæå³ã®ããäŸãããäžåºŠãé¡ãããŸãã
èšèªã«ã€ããŠç¥ã£ãŠããã¹ãããšã¯ãã¹ãŠç¥ã£ãŠããããã§ãã ã ãããç§ã®äžåŠ2幎çã®å åŒãç§ã«äžããããšãã§ããæã解決çã§ãã©ã€ã³ãã·ã§ãããåãåºãã®ã§ã¯ãªããçŽ æŽãããããã¥ã¡ã³ããä»ããŠç§ãã¡ã®æ®ãã®éšåãæè²ãããã®çç·Žã®äžéšã䜿çšã§ãããšãããããããŸããã ãæéãããã ãããããšãããããŸãã
@jashkenasã®èãã«èå³ããããŸãã ç§ã¯äŸ®èŸ±çãŸãã¯è»œèçã«èãããã€ããã¯ãããŸããã ç§ã¯æã ãã®ããã«å€ããããšãç¥ã£ãŠããŸãã ãããã®ç°¡åãªçããåºããŠãåé¡ãã©ã®ããã«è§£æ±ºãããªãããç®ã§èŠãŠãåé¡ããããã瀺ãæ¹åã«äŒè©±ãé²ããããšããŠããã®ã¯äºå®ã ãšæããŸãã
ãŸããããã«ãããããã¥ã¡ã³ãã«è¡ãè¿œå ããããšã§ãã©ã€ãã©ãªã®ãŠãŒã¶ãŒãæåã«ãžã§ãã«é©åãªæ©èœãååŸããã®ã«ã©ã®ããã«åœ¹ç«ã€ããããããŸããïŒ
ããããã確ãã«ã
次ã«ããããæå³ã®ããäŸãããäžåºŠãé¡ãããŸãã
[[Class]] == "Number"ã®ãã¹ãïŒ ããã¯æãããªã¯ãã§ããããã¯æ°åãšäžèŽããŸãã èªç¶æ°ãæŽæ°ãæéæ°ãå®æ°ãæçæ°ãªã©ãæåŸ ããŠãããµãã»ããã§ã¯ãªããããããŸãããã確ãã«ãã¹ãŠã®æ°ã§ãã
ãšã¯ãããããã¥ã¡ã³ãã«ç¶¿æ¯ãè¿œå ãããããšå®³ãåãŒãå ŽåããããŸãã ããããç§ã¯ããããã®æã®1ã€ã§ã¯ãªããšæããŸãã ããã¯ãçŸåšã®ç¶æ ã§ãæ°å€ã®æœè±¡çãªæŠå¿µã®è§£éãççŸããŠããå¯èœæ§ãããéçºè ã«ãšã£ãŠåœ¹ç«ã€å¯èœæ§ããããŸãã ããªãã®å Žåã®ããã«ãããªãããã¹ããããã»ããã®ã¡ã³ã¿ã«ã¢ãã«ããã§ã«ç¢ºç«ããŠããŠããããããã®ãã¹ããå®è¡ããããã«_çŸãã_é¢æ°ãèŠã€ããŸããã +1 ããã ã@jashkenasã®èãã«ã¯ãŸã èå³ããããŸãã
ã¯ã- NaN
ãæž¡ããããšãã«ã _.isNumber
ãtrue
ãŸãã¯false
ã©ã¡ããè¿ããã¯ãŸã£ããããããŸããã ç§ã¯ç¢ºãã«ãããè©Šããã«èŠããŠããŸããã äžèšã®ã³ãããã®ããã¥ã¡ã³ãã«ã¡ã¢ãè¿œå ããŸããã ããããšãã
ã¿ããªããããšãã ä»ã®èª°ãããã®åãåé¡ã«ééããªããããããªãããšãç¥ã£ãŠããããã§ãã
ããã¯ééããªããã»ãã³ãã£ã¯ã¹ãæè¡çäºå®ãããåªå ãããã¹ãå Žåã®ããã«æãããŸãã ã¯ããNaNã¯ããã€ãã®ä»æ§ã«ãããšæ°åãããããŸããã ããããç§ãäœããå°ãããšããããªãã¯çªå·ã§ããïŒããšãã質åããããŸãã ãããŠããã¯ãç§ã¯æ°ã§ã¯ãªãããšèšã£ãŠããã®ã§ãç§ã¯ãããä¿¡ããã¹ãã§ãã Not a Number â NaN âééããªãNumberã§ã¯ãããŸãã...ãããŠisNumberã¯falseãè¿ãå¿ èŠããããŸãã
人éã«ãšã£ãŠæå³ã®ãããã®ãä¿®æ£ããã®ã§ã¯ãªããããã¥ã¡ã³ãã«Gotchaãé 眮ãããšãã³ãŒãã£ã³ã°ã«ãããââæéãççž®ãããããã¥ã¡ã³ãããã£ãããšèŠã€ããæéãé·ããªããŸãã
ãããåèããŠããããŸããïŒ
@contentfree ïŒ NaN
ã¯floatã®ã¡ã³ããŒã§ãã JSã®ãã¹ãŠã®æ°å€ã¯æµ®åå°æ°ç¹æ°ã§ãã ç§ã¯ãããNaN
ã圌ããåŸãã®ãšåããããã®æ°ã«ãªããšæããŸãã NaN
ã¯ããç§ã¯æ°åã§ã¯ãªãããšããæå³ã§ã¯ãããŸããã ããã¯ãéæ°å€ã®æ°å€è¡šçŸã§ãã äºä»¶ã¯ç§ã®æ¬ã§éããããŸããã NaN
/ Infinity
/ -Infinity
æ°å€ããã¹ãããå Žåã¯ã isFinite
䜿çšããŸãã
æ»ãã 銬ãåãã®ã§ã¯ãªã...
ã©ãããŠobj instanceOf Number
javascriptä»æ§ã«ãã§ã«ååšããå¿ èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããããã®ããèªã¿ãããæ¹æ³ãããå Žåã¯ãæªç¥ã®ïŒèª¿æ»ã«æéãç¡é§ã«ããªãéãïŒã©ã€ãã©ãªã䜿çšããã«ãã®æ¹æ³ã§å®è¡ããããã§ãã
ãããæå³çã«æ£ããä¿®æ£ããã€ããããªãå Žåã¯ãã©ã€ãã©ãªããç¡é§ãªãªãŒããŒããããšé çã®çš®ãåãé€ãã ãã§ãããšç§ã¯æ祚ããŸãã
instanceof
æŒç®åã¯ãªããžã§ã¯ãã«å¯ŸããŠã®ã¿æ©èœããããªããã£ãã«å¯ŸããŠã¯æ©èœããŸããïŒ new Number(5) instanceof Number == true; 5 instanceof Number == false
ã ãŸãããã©ãŠã¶ã®ãã¬ãŒã éã§ã¯æ©èœããŸããã [[Class]]
ãçµç±ããŠãã§ãã¯Object::toString
ãããäžè¬çã«åãå
¥ããããŠJavaScriptã§æãä¿¡é Œæ§ã®é«ãã¿ã€ãã®ãã§ãã¯æ¹æ³ã§ããããšãã
ã©ã€ãã©ãªããã䟿å©ã«ããããã®+1ãšãåãã€ã³ã¹ã¿ã³ã¹ã§JavaScriptãåããŠäœ¿çšãããŠãŒã¶ãŒãæè²ããŸãã
ææ¡ïŒ
_.isNumberïŒobjectã[isFinite]ïŒ;
ããã«ãããisFiniteãããããæåã«æ±ããŠãããã®ã§ããããšãåŠã³ãªããããã®èœãšãç©Žã«å·»ã蟌ãŸãããšãã«ãçŸåšã®å®è£ ã«trueãç°¡åã«è¿œå ã§ããŸãã
ç§ã®2c
@ nickl-èå³æ·±ãã¢ã€ãã¢ã§ããããã®å Žåã¯åã«isFinite
ã䜿çšããªãã®ã¯ãªãã§ããïŒ
ãããã¯ã _.isNaN
ãã§ã«ååšããããã察称æ§ã®ããã«_.isFinite
è¿œå ã§ããå¯èœæ§ããããŸãã
_.isFinite = function (value) {
return value > -1 / 0 && value < 1 / 0;
};
@kitcambridge
ç§ãäºæž¬ããå¯äžã®åé¡ã¯ãæååãæéã®ã0x0ããã0xFããã2ããªã©ãšããŠæž¡ãããããšã§ãããããã£ãŠãäœããã£ãŠãã_ãisNumberãŸãã¯åçã®ãã®ãšçµã¿åãããå¿ èŠããããŸãã
_.isFinite = function (obj) {
return obj > -1/0 && obj < 1/0 && _.isNumber(obj);
};
æ°å€ãã¹ãã«val === + valã䜿çšããããšã§ã5æåãåãããšãã§ããŸãã
_.isFinite = function (obj) {
return obj > -1/0 && obj < 1/0 && obj === +obj;
};
@octatone確ãã«ãããã¯å ¬å¹³ã ãšæããŸã...æè¡çã«ã¯ããããã®æååã¯æ°å€æ¯èŒã§äœ¿çšã§ããããæéã§ãïŒã€ã³ã¿ããªã¿ã¯ããããæ°å€ã«åŒ·å¶ããå¿ èŠããããŸãïŒããææ¡ã¯æ¢åã®ã¢ã³ããŒã¹ã³ã¢ã¿ã€ããã§ãã¯é¢æ°ãšããäžè²«æ§ããããŸãã
æ¢åã®_.isValidDateãšã€ã³ã©ã€ã³ã§ãããisFiniteåŒæ°ãæ··åããªã_ãisValidNumberã¯ã©ãã§ããïŒ
@ nickl-
NaN
ããã³Infinity
æå¹ãªæ°å€ã§ãã ãã®é¢æ°ã«isValidNumberãšããååãä»ãããšããã®ç®çãæ··ä¹±ããã®ã§ããããããããšããisNumberã®ååãisValidNumberã«å€æŽãããšããããšã§ããã
NaN
ããã³Infinity
æå¹ãªæ°å€ã§ãã ãã®é¢æ°ã«isValidNumberãšããååãä»ãããšããã®ç®çãæ··ä¹±ãããšæããŸãã
åæããŸãã
ååã®å€æŽã¯èšããªãã£ã...
ç§ããã®_.isNumber(NaN) === true
ãç¥ã£ãŠé©ããã
@contentfreeã®https://github.com/jashkenas/underscore/issues/406#issuecomment-4144992ã«åæããåŸåããããšæããŸãã ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã§ã¯ããã®ç¹å®ã®ã±ãŒã¹ã®ååã§ãããé©ãæå°ã®ååãããããŸãã ;-)
ãããŠãããã»ã©å€ãã®äººã ãããã«ã€ããŠæ··ä¹±ããŠããã®ãèŠãåŸãéããŒãã³ã¢js-codersã®äººéããã®ååãèŠããšãã«æåŸ ããããšãé¢æ°ã«å®è¡ãããããšã¯çã«ããªã£ãŠãããšæããŸãã
ã¡ããã©ç§ã®å°ããª2¢âŠâ¢
_.isNaN
ãæ··ä¹±ãæããŸãã ããã¥ã¡ã³ãå
ïŒ
泚ïŒããã¯ããã€ãã£ãã®isNaNé¢æ°ãšåãã§ã¯ãããŸããããã®é¢æ°ã¯ãundefinedãªã©ãä»ã®å€ãã®éæ°å€ã«å¯ŸããŠãtrueãè¿ããŸãã
éåžžã®æå³ã§ã¯ã undefined
ã¯ç¢ºãã«éæ°ã§ãã
ç§ã¯æå³è«ç建èšæ§ã«æ祚ããŸãã isNumber == Not a number
ç¬ã æµ®åå°æ°ç¹å€ã®ãã§ãã¯ã«ã€ããŠè©³ãã説æããå¿
èŠãããå Žåã¯ãä»ã®æ¹æ³ã§è¡ããšæããŸããïŒ
ç§ã¯æå³è«ç建èšæ§ã«æ祚ããŸãã
ããã -Infinity
ã Infinity
ã Object(2)
åãããã«ã [[Class]]
æ°åã§ãã ããã¯ãé¢æ°ããªããžã§ã¯ãã§ããããã«ãéçºè
ãåŠã¶ããšã®1ã€ã§ãã ãã®ã¡ãœããã®ç¯å²å€ã§ããçªå·ã«å¯ŸããŠäœããã®åœ¢åŒã®æ€èšŒãå®è¡ããå¿
èŠãããå¯èœæ§ããããŸãã äŸãã°ãããã¯ãã倧ããã§ã-1
æªæºMath.pow(2,32)
ããŸãã¯æŽæ°ã -Infinity
ã Infinity
ãŸãã¯NaN
å ŽåãããªããŒã¿ãŒãšããŠ_.isFinite
ã䜿çšããŸãã åæ§ã«ã _.isDate
ã¯ãæ¥ä»ãªããžã§ã¯ããæå¹ãªæ¥ä»ãè¡šããŠãããã©ãããæ€èšŒããŸããã
ãseealsoïŒisFiniteãããã³ãseealsoïŒÂ«äœããå®éã«äœ¿çšã§ããæ°å€ã§ãããã©ãããå€æããæ¹æ³ãåæãããšãã»ã€ãã§ããã¥ã¡ã³ããæŽæ°ããã®ã¯ã©ãã§ããïŒ
@michaelficarraä»æ§ã§ã¯ãNaNã¯éåžžã«æ°å€åã§ããããšãç§ã¯ç¥ã£ãŠããŸãã ããããããã°ã©ããŒãå°ãããšãã«èããŠããã®ã¯ããããæ°åãªã®ããšããããšã§ããïŒ
ç§ãã¡ã®ã»ãšãã©ãç¥ãããã®ã¯ãã»ãšãã©ã®å Žåããããåºæ¬çãªç®è¡ã«äœ¿çšã§ãããã©ããã§ãã ãããã£ãŠãisNumberïŒxïŒ&& isFiniteïŒxïŒã«ç§»åããå¿ èŠããããŸãã ãããŠãããã¯å€§äžå€«ã ãšæããŸãã ããããããã¯æ°ããããã°ã©ããŒã«ãšã£ãŠå€§ããªèœãšãç©Žã§ãããããèªããŸããã
å³å¯ã«è±èªã®èŠ³ç¹ããã¯ãisNumberãšãããã¹ãããtrueãè¿ãNot a NumberïŒNaNïŒã¯ãŸã£ããæå³ããããŸããã ããã¯ãisNumericãŸãã¯isNumericTypeãšããååã®æ¹ãé©åã§ã¯ãªãã§ããããã
å°ãªããšã人ã ãããã«æåã«çŽé¢ãããšããããããã°ãè¿œå ããå€ãã®æéã浪費ããããšã¯ééããããŸããã
ãããã£ãŠãisNumberïŒxïŒ&& isFiniteïŒxïŒã«ç§»åããå¿ èŠããããŸãã
æè¿ã _.isFinite
å®è£
ãES6Number.isFiniteã«åŸãããã«
ããã«ãããå€ãæ°å€ããªããã£ãã§ãããæéã§ããããã®äžè¬çãªã±ãŒã¹ãåŠçããå¿
èŠããããŸãã
ä»ã®[[Class]]
ãã§ãã¯ã¡ãœãããšäžèŽãã_.isNumber
ã®åäœãå€æŽããå¿
èŠã¯ãããŸããã
å³å¯ã«è±èªã®èŠ³ç¹ããã¯ãisNumberãšãããã¹ãããtrueãè¿ãNot a NumberïŒNaNïŒã¯ãŸã£ããæå³ããããŸããã ããã¯ãisNumericãŸãã¯isNumericTypeãšããååã®æ¹ãé©åã§ã¯ãªãã§ããããã
æ€èšŒã _.isNumber
ãããã³_.isDate
ã«é¢ããç§ã®ã³ã¡ã³ããåç
§ã
@ jdalton_.isDateã§äžå®ã®åäœã«ã€ããŠã¯æ£ããã§ãã ãããŠãçããã¯ã¢ã³ããŒã¹ã³ã¢ã䜿ã£ãŠçŽ æŽãããä»äºãããŠããã®ã§ã決å®ã¯æ¬åœã«ããªã次第ã ãšæããŸãã
ããããããã¯éåžžã«çŽæã«åããŠããããã«æãããã®ã§ãæ°åã§ã¯ãªããšåŒã°ãããã®ã¯æ°åã§ãã
@Walms 100ïŒ åæããŸãã ãã®å ŽåãNaNã_æè¡çã«_æ°å€ã§ãããšãããšãããã°ã©ããŒãšçŽæã¯ã¹ããŒãã¡ã³ãã®çµ¶å¯Ÿçãªãæ£ç¢ºãããç¡å¹ã«ããå¿ èŠããããšæããŸãã
ããããããã¯éåžžã«çŽæã«åããŠããããã«æãããã®ã§ãæ°åã§ã¯ãªããšåŒã°ãããã®ã¯æ°åã§ãã
ãã®æå³ã§ãããã¯ãããã¯ãã«ãŠã³ã¿ãŒçŽæçã§ãã_.isNumber
è¿ãtrue
ãæ°åã®ãªããžã§ã¯ãã«å¯ŸããŠObject(2)
ã®åã§ããããšãobject
ïŒ
ãããã¯[[Class]]
ã¡ãœããã§ãã ãã¶ããããã¯ããã¥ã¡ã³ãã§ãã£ãšæ確ã«ããå¿
èŠããããŸãã
ç§ã¯ãã§ã«ã _.isFinite
ES6 Number.isFinite
åŸããããšããå®è¡å¯èœãªä»£æ¿æ¡ãææ¡ããŸããã åºæ¬çãªis-number
å¿
èŠãªå Žåã¯ã typeof x == 'number'
ãŸãã å€ãNaN
ã Infinity
ããŸãã¯-Infinity
ã§ãªãããšãæ€èšŒããå¿
èŠãããå Žåã¯ã Infinity
ãã¹ãŠã®[[Class]]
Number
ã次ã«_.isFinite
ãè¡ãæ¹æ³ã§ãã
ãããã现ããæ°å€ã¡ãœããã«ã€ããŠã¯ãã¢ã³ããŒã¹ã³ã¢-å¯çš¿ãåç
§ããŠãã ããã _.isNumeric
ã _.isInteger
ã _.isZero
ã _.isEven
ã _.isOdd
ã _.isFloat
ã _.isNegative
ãïŒ _.isPositive
ã
@jdaltonæåŸã®2ã€ã®ã³ã¡ã³ãã¯ããããæ··ä¹±ããŠãããšæãçç±ãæ確ã«ããã®ã«æ¬åœã«åœ¹ç«ã£ããšæããŸãã
_.isNumberã®åã«isãä»ããŠãããšããäºå®ã«ãã£ãŠã_ãisNumberã«ã³ã³ããã¹ããäžããããŠããããšã¯ãæåã¯ããããŸããã§ãããã€ãŸããã¿ã€ããã§ãã¯ã§ããã ãã®ã³ã³ããã¹ãã§ã¯ãããªãã¯å®å šã«æ£ããã§ãã_ãisNumberãNaNã«å¯ŸããŠfalseãè¿ãããšã¯æå³ããããŸããã
ããããã¢ã³ããŒã¹ã³ã¢-contribãšisFiniteã¯ãã®ã³ã³ããã¹ããå£ããŠããããã§ãã æåã¯isã§ãããã¿ã€ãã§ã¯ãªãå€ãæ€èšããŠããŸãã ãããŠãããã¯ç§ãæ··ä¹±ããŠãããšæããšããã§ããé¢æ°åããã³ã³ããã¹ãã決å®ããæ確ãªæ¹æ³ããããŸããã
ããã¯ãã¹ãŠããããä¿®æ£ããæ¹æ³ãèŠåœãããªããšèšã£ãŠããŸããã
ããã§ã®åé¡ã¯ãæ°åã«ã¯çŽæçã§ãªãããšãããã€ããããšããããšã ãšæããŸãã ãã ãããããã¯äžè²«ããæ¹æ³ã§åäœããŸãã ãã®å Žåãäžè²«æ§ãäœãããããšã§_.isNumber
ããçŽæçã«ããããšãã§ããæçµçã«ã¯ä»ã®å Žåã«ã¯çŽæçã§ãªããªããŸãã
ããã«ããã€ãã®å ·äœçãªäŸããããŸãïŒ
# If you add two Numbers together you always get another Number back
# This function should always return true no matter what you pass it
closedUnderAddition = (a, b) -> !isNumber(a) || !isNumber(b) || isNumber(a + b)
closedUnderAddition(1,1) == true
closedUnderAddition(Number.MAX_INT,2**970) == true # false if isNumber checks finiteness
# If you divide two Numbers you always get another Number back
closedUnderDivision = (a, b) -> !isNumber(a) || !isNumber(b) || isNumber(a / b)
closedUnderDivision(1, 2) == true
closedUnderDivision(1, 0) == true # false if isNumber checks finiteness
closedUnderDivision(0, 0) == true # false if isNumber checks finiteness or NaN-ness
# Anything you cast to a Number is a Number
castsToNumber = (x) -> isNumber(Number(x))
castsToNumber(1) == true
castsToNumber(Infinity) == true # false if isNumber checks finiteness
castsToNumber("bees") == true # false if isNumber checks finiteness or NaN-ness
castsToNumber("3") == true
michaelficarraãèšã£ãããã«ïŒ
NaNã¯ãç§ã¯æ°ã§ã¯ãªãããšããæå³ã§ã¯ãããŸããã ããã¯ãéæ°å€ã®æ°å€è¡šçŸã§ãã
èšãæããã°ããæ°åããšæ°åããããŸãã NaNã¯ãæ°ãã§ã¯ãªããããããŸããããInfinityã-Infinityãããã³-0ã®ãããªã°ããããã®ãšäžç·ã«çµ¶å¯Ÿã«æ°ã§ãã ãã ããã¯ã€ã«ãã§ãŠãŒãªãŒã§ãããšåæã«ãNumberã®å®çŸ©ã¯æ確ã«æå®ãããŠãããäžè²«ããŠåäœããŸãã
äžæ¹ããæ°åãã¯æ確ã«å®çŸ©ãããŠããªãæŠå¿µã§ããã話ããŠããçžæã«å¿ããŠãäžèšã®ãããããŸãã¯ãŸã£ããå«ãŸããªãå¯èœæ§ããããæ°å€æååãããŒã«ãçå€äžãªã©ãããããçš®é¡ã®ãã®ãå«ãŸããå¯èœæ§ããããŸãã ããã¯åé¡ãããŸãããããã¹ãŠã®äººã®å®çŸ©ã«æºæ ãããœãªã¥ãŒã·ã§ã³ã¯ãããŸããã
ãã®ãããããã¯æ¬è³ªçã«ããã¥ã¡ã³ãã®åé¡ã ãšæããŸãã
ãŸãããæ°åãã¯ä»ã®äººã®èšèã®ããã«èŠããªããªããŸãããïŒ
è¯ãç¹ã@ sgentleã åè ã¯å®¢èŠ³çãªå°ºåºŠã§ããã®ã«å¯Ÿããç§ãã¡ã¯çŽææ§ãããäžè²«æ§ã«æ祚ããŸãããïŒãã®ã¹ã¬ããã瀺ãããã«ïŒçŽæçã§ããããšã«å šå¡ãåæããããã§ã¯ãããŸããã
NaNããæ°åã§ã¯ãªãããšããŠæ±ããªãã§ãã ããã NaNã¯ç¹å¥ãªå€ã§ãã
NaNããæ°åã§ã¯ãªãããšããŠæ±ããªãã§ãã ããã NaNã¯ç¹å¥ãªå€ã§ãã
ãããã§ãããã¯ãæ°åã§ã¯ãªãããšåŒã°ããŠããŸãã
ç§ã«ãšã£ãŠããã¯ãã®ãããªãã®ã§ã
var _false = "true";
ãããããªãã¯_falseãçã§ããããšãåŠã¶ããšãã§ããŸãããããã¯æ£åœãªçç±ããªãæ··ä¹±ããŠããŸãã
@Walmsããã¯æªãååã§ãããããã¯JSã®ããã§ã¯ãããŸããã ããããNaNããšåä»ããç·ãéé£ãããããããŸããã http://en.wikipedia.org/wiki/NaN
ãããç§ã¯_.isNumber(NaN)
ãfalse
ãè¿ãããšãæã¿ãŸã...ãããçç±ã§ããããšã«æ°ä»ããŸã§ãããã§æ·±å»ãªé ãããããããŸããã
if (isNaN(Number(value))) {
alert('Number required.');
}
@pspiåæããŸããã _.isNumber()
_semantic_ã®æå³ã§æ£ããåäœãããããšã¯ãç§ãå®éã«ããã䜿çšããããšã¯æ±ºããŠãªãããšãæå³ããŸãã ._isFinite()
ã¯ãç§ãæåŸ
ããããã«æ©èœããé¢æ°ã®ããã§ãã
ãããŠãã¡ããããããæçš¿ããç¿æ¥ãåŒæ°ãæ°å€ã§ã¯ãªãã«ããããããã _.isFinite('1')
ãtrue
ã§ããããšãããããŸããã
æãåèã«ãªãã³ã¡ã³ã
ããŠãç§ã¯åçŽãªåé¡ããå§ããŸããã æååãæ°å€ãå Žåã«ãã£ãŠã¯NaNã®å ¥åããããŸãã parseIntãšisFiniteã䜿çšããŠparseintãæåãããã©ããããã¹ããããããŒã¹JavaScriptã®ç°¡åãªãœãªã¥ãŒã·ã§ã³ããããŸãã åçŽã§ãããå®å šã«ã¯ãªãŒã³ã§ã¯ãªããç§ã®ç®æšãèªæã§ã¯ãããŸããã ããã§ãç§ã¯ãããã®çš®é¡ã®ã¿ã¹ã¯ãå®è¡ããããã«ç§ã®å®å šã«çŽ æŽãããgotoã©ã€ãã©ãªã䜿çšããããšã«ããŸããã æåã®æ€æ»ã§ãå€ãåãããããæ°å€ã§ãããã©ããã瀺ãé¢æ°ãèŠã€ããŸãããããã¯ãç§ã®äžè¬çãªå®çŸ©ã§ã¯ãç§ã欲ãããšæããã®ã§ãã
ãŸããããã«ãããããã¥ã¡ã³ãã«è¡ãè¿œå ããããšã§ãã©ã€ãã©ãªã®ãŠãŒã¶ãŒãæåã«ãžã§ãã«é©åãªæ©èœãååŸããã®ã«ã©ã®ããã«åœ¹ç«ã€ããããããŸããïŒ æ¬¡ã«ããããæå³ã®ããäŸãããäžåºŠãé¡ãããŸãã
èšèªã«ã€ããŠç¥ã£ãŠããã¹ãããšã¯ãã¹ãŠç¥ã£ãŠããããã§ãã ã ãããç§ã®äžåŠ2幎çã®å åŒãç§ã«äžããããšãã§ããæã解決çã§ãã©ã€ã³ãã·ã§ãããåãåºãã®ã§ã¯ãªããçŽ æŽãããããã¥ã¡ã³ããä»ããŠç§ãã¡ã®æ®ãã®éšåãæè²ãããã®çç·Žã®äžéšã䜿çšã§ãããšãããããããŸããã ãæéãããã ãããããšãããããŸãã