【JavaScript】parseInt() 数值转换的注意地方

来源:互联网 发布:怎样在u盘上编程 编辑:程序博客网 时间:2024/06/05 00:17

语法:parseInt(string, radix);

首先来看下列代码:

parseInt("09")

  IE8下面parseint默认会把我的“09”当成八进制,但是又发现不是合法的八进制,最后就抛出了0这个false。
  不过后来发现在IE9下面,parseInt在缺失radix的时候底层也是默认采用十进制的,终于微软为了符合大众口味做了正确的修改。

  使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。当字符串以”0″开头的时候就有可能会出问题,例如,部分时间进入表单域,在ECMAScript 3中,开头为”0″的字符串被当做8进制处理了,但这已在ECMAScript 5中改变了。为了避免矛盾和意外的结果,总是指定基数参数。

var month = "05",     year = "09"; month = parseInt(month, 10); year = parseInt(year, 10); alert(month);   // 05alert(year);    // 09

  Number()通常快于parseInt(),因为parseInt()方法,顾名思意,不是简单地解析与转换。但是,如果你想输入例如“08 hello”,parseInt()将返回数字,而其它以NaN告终。

parseInt("08 hello");  // 8Number("08 hello");    // NaN