关于javascript中的parseInt使用技巧

 更新时间:2009年09月03日 21:17:45   作者:  
前面好几次遇到JavaScript中parseInt函数把字串转为数字,前面遇到过几次问题,然后就换其它方法进行比较。
要对表单中填写的日期格式进行客户端验证,于是在网上找了段代码,其中用到parseInt对年月日做判断,其中有类似这样的语句:

......

else if(parseInt(month)<1 || parseInt(month) >12)

......

可是对于当前本来正确的日期,这里怎么也通不过。后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制。如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照“0开头的是八进制数”的规则转换了!正好现在是9月,我随手选的日期,正好暴露了这个问题,我要是在上半年做这个,还真是将留下一个BUG,然后等到下半年客户才告诉我日期无法填写了。

于是,将函数中所有用到parseInt的地方,都加上了第二个参数,指明是十进制。比如上面那句,改成:

......

else if(parseInt(month,10)<1 || parseInt(month,10) >12)

......


前面好几次遇到JavaScript中parseInt函数把字串转为数字,前面遇到过几次问题,然后就换其它方法进行比较。
当我去页面取得一个日历的东西,然后进行转换成数字进行比较 的时候,月份转换老是出现问题,
当我用

var num = parseInt(01);
var num = parseInt(01);
...
var num = parseInt(07);
var num = parseInt(08);
var num = parseInt(09);
var num = parseInt(10);

假如当我进行如上转换的时候,
parseInt(),传进去的参数从1到7都没有问题,可是当我用parseInt(08)的时候就出问题,转换出来的num=0

当时因为项目的紧急的原因,也没有细细的去追究
现在有空了看了一下parseInt这个javascript方法

javascript 的api的说明如下:
parseInt 方法
返回由字符串转换得到的整数。
parseInt(numString, [radix])
参数
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

看了如上的api知道了,原来我转进去的参数为01到08时,参数以'0'开头,所以转换成了八进制。又因为八进制是只能表示0到7所以,当我参数为01到07时转换正确,当为08时就进位了,转换为0.而parseInt(10)又能正解转换为10

所以规矩的做法是不要省略最后一个参数,

用parseInt(08,10);就能转换正确了

相关文章

  • js格式化时间和js格式化时间戳示例

    js格式化时间和js格式化时间戳示例

    这篇文章主要介绍了js格式化时间和js格式化时间戳示例,需要的朋友可以参考下
    2014-02-02
  • 学习JavaScript的最佳方法分享

    学习JavaScript的最佳方法分享

    你为学习JavaScript 制定的蓝图、路线、行动计划!你不必担心找不到最好的资源,先整理些不好的资源,再确定下一步该学什么。遵循它,一步一步来
    2011-10-10
  • JS之if语句对接事件动作逻辑(详解)

    JS之if语句对接事件动作逻辑(详解)

    下面小编就为大家带来一篇JS之if语句对接事件动作逻辑(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • JS跨域问题详解

    JS跨域问题详解

    本文结合实际,分两种情况讨论跨域技术:首先讨论不同子域的跨域技术,然后讨论完全不同域的跨域技术。有需要的小伙伴可要看仔细了。
    2014-11-11
  • javascript Function函数理解与实战

    javascript Function函数理解与实战

    小编给大家带来一片关于javascript的基础教学内容,关于Function函数的训练与理解,一起学习下吧。
    2017-12-12
  • 原生js实现节日时间倒计时功能

    原生js实现节日时间倒计时功能

    本文主要分享了原生js实现节日时间倒计时功能的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 全面分析JavaScript 继承

    全面分析JavaScript 继承

    在JAVASCRIPT中,类的所有实例对象都是从同一个原型对象(父类)上继承属性,所以原型对象是类继承机制的核心。或者是用户自己定义的类,下面小编带大家学习一下吧
    2019-05-05
  • JavaScript基础之this指向

    JavaScript基础之this指向

    这篇文章主要介绍了浅谈JavaScript this指向以及修改指向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • ES6基础语法之函数介绍

    ES6基础语法之函数介绍

    这篇文章介绍了ES6中函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 为JS扩展Array.prototype.indexOf引发的问题及解决办法

    为JS扩展Array.prototype.indexOf引发的问题及解决办法

    这篇文章主要介绍了为JS扩展Array.prototype.indexOf引发的问题及解决办法,需要的朋友可以参考下
    2015-01-01

最新评论