使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。当字符串以”0″开头的时候就有可能会出问题,例如,部分时间进入表单域,在ECMAScript 3中,开头为”0″的字符串被当做8进制处理了,但这已在ECMAScript 5中改变了。为了避免矛盾和意外的结果,总是指定基数参数。
var month = "05";
var year = "09";
month = parseInt(month, 10);
year = parseInt(year, 10);
alert(month);
alert(year);
此例中,如果你忽略了基数参数,如parseInt(year),返回的值将是0,因为“09”被当做8进制(好比执行 parseInt( year, 8 )),而09在8进制中不是个有效数字。
替换方法是将字符串转换成数字,包括:
+"08" // 结果是 8
Number("08") // 8
这些通常快于parseInt(),因为parseInt()方法,顾名思意,不是简单地解析与转换。但是,如果你想输入例如“08 hello”,parseInt()将返回数字,而其它以NaN告终。
alert("8"/2);//返回4
alert(8/"2");//返回4
alert("8"/"2");//返回4
alert("8"+"2");//返回"82"
alert(8+"2");//返回"82"
alert(Number("8") + 2);//返回10
alert(Number("8") + "2");//返回"82"
alert(Number("08"));//返回8
alert(parseInt("08 hello"));//返回8
alert(Number("08 hello"));//返回NaN
alert(null);//返回null
alert("null");//返回null
alert(parseInt("null"));//返回NaN
alert(parseInt(null));//返回NaN
alert(Number(null));//返回0
alert(Number("null"));//返回NaN
浙公网安备 33010602011771号