JavaScript 中的 isNaN

By:vkvi Date:2009-07-10

    JavaScript 中 NaN 表示 Not a Number,isNaN 这个函数就是用来判断参数是不是不是数字.在 JavaScript 中,对于省略写法(如:".3"、"-.3")、科学计数法(如:"3e7"、"3e-7")、十六进制数(如:"0xFF"、"0x3e7")均被认定为数字格式,这类字符串都可以用 Number 转化成数字,也就是说这些字符串作为 isNaN 的参数时均返回 false(不是不是数字).

    下面看看几个特殊的参数值:

    alert(isNaN("")); //false

    alert(isNaN(null)); //false

    alert(isNaN(undefined)); //true

    alert(isNaN(NaN)); //true

    alert(isNaN("38px")); //true

    也就是说零长度字符串和 null 也会被看作数字.

    其实 JavaScript 对待这些特殊字符值时是有矛盾的,这里有把零长度字符串和 null 看作数字,却在 parseInt 中把它们和 undefined 都看作不是数字.

    同时我认为 isNaN 这个名字起得不好,很多情况下,我们想知道一个字符串是不是数字,而不是说它是不是不是数字,个人认为如果有个 isNumber 函数,返回 !isNaN(value),比较合适我们理解.

参与讨论去: 艾睿(Airia) 交朋友去:友吧推荐文章去:网站贴吧
企业招聘

北京中视力天文化传媒有限公司

公司简介:北京中视力天文化传媒有限公司,是CCTV.com央视国际网络有限公司投资的互联网研发团队。我们是天使的使者。。。

招聘FlashAS程序员详情点击

Copyright 2007-2008 51AS.com Extended in kingcms 鲁ICP备06001158号