JavaScript中parseInt与parseFloat

parseInt("07") 返回多少 ?
parseInt("08") 又返回多少 ?
parseInt("028") 又返回多少 ?
Number("08") 又返回多少 ?
Number("028") 又返回多少 ?

parseInt("123abc")   //123
parseInt("a123ab")   //NaN
parseInt("ab")       //NaN  
parseFloat("123abc") //123
parseFloat("a123ab") //NaN
parseFloat("ab")     //NaN

答案:
parseInt("07") 返回8
parseInt("08") 返回0
parseInt("08") 返回2

用javascript的parseInt函数时,
parseInt("08")或者parseInt("09")返回是0,而parseInt("01")...parseInt("07")都是正确的。

原因是;

当在前面有"0"时,javascript的debugger会认为这是一个八进制数,而"08"和"09"不是一个合法的八进制数,所以导致了那个问题,但是parseFloat不会存在这个问题。

参考:
http://log-cd.iteye.com/blog/314231

你可能感兴趣的:(JavaScript,Blog)