语法: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); // 05
alert(year); // 09
Number()通常快于parseInt(),因为parseInt()方法,顾名思意,不是简单地解析与转换。但是,如果你想输入例如“08 hello”,parseInt()将返回数字,而其它以NaN告终。
parseInt("08 hello"); // 8
Number("08 hello"); // NaN