`

谁能告诉我为什么parseInt('09'); parseInt('08');的结果居然为零?!!

阅读更多

有兴趣的朋友可以执行下面这段脚本:

<input type="button" value="parseInt('05')" onclick="alert(parseInt('05'))">

<input type="button" value="parseInt('08')" onclick="alert(parseInt('08'))">

<input type="button" value="parseInt('09')" onclick="alert(parseInt('09'))">

我在IE7和FF下面试过了parseInt('05')=5,可是parseInt('08'),parseInt('09')却等于零,而且就这两个数字最特别,居然为0,百思不得其解,希望有人知道为什么。

 

分享到:
评论
5 楼 yangpanwww 2008-07-31  
解决方法:parseInt('05',10)"
 
4 楼 cai555 2008-05-03  
居然被评为入门帖,不过还是感谢解答的各位
3 楼 comasp 2008-05-02  
08 跟 8 不同.
parseInt 默认 以0开头的是八进制数字, 0x开头的是十六进制数
2 楼 comasp 2008-05-02  
var num=parseInt(str.substring(2),10);

若不加后面的参数,str.substring(2)只能被转化到0-7,
显然只能转化为八进制,
1 楼 jindw 2008-05-02  
8进制!

相关推荐

    parseInt()函数引发的惨案

    在JavaScript的世界里,`parseInt()`函数是一个非常常见且重要的转换工具,它用于将字符串转换为整数。然而,由于其特定的行为和潜在的陷阱,它也有可能成为开发过程中的一个“惨案”。在这个主题中,我们将深入探讨...

    js中parseInt函数浅谈

    比如说parseInt(“010”,10)就是10进制的结果:10,parseInt(“010”,2)就是2进制的结果:2,parseInt(“010”,8)就是8进制的结果:8,parseInt(“010”,16)就是2进制的结果:16。 下面我来说说没有指定进制单位的...

    javascript parseInt 函数分析(转).docx

    4. **前导零的处理**:当字符串以零开头时,`parseInt`默认将其识别为八进制数。这种行为可能会导致意料之外的结果,尤其是在数字中包含八进制范围之外的数字时(如"8"或"9")。为了避免这类问题,最好明确指定基数...

    转换类型(转换为数字)转换类型Number()、parseInt()、parseFloat的区别

    转换类型(转换为数字)转换类型Number()、parseInt()、parseFloat的区别 在 JavaScript 中,转换类型是指将其他数据类型转换为数字类型的过程。其中,Number()、parseInt()、parseFloat() 是三个常用的转换类型...

    JavaScript中的ParseInt(“08”)和“09”返回0的原因分析及解决办法

    这就是为什么在某些情况下,`parseInt("08")`和`parseInt("09")`会返回0的原因。 值得注意的是,这个行为并不是所有浏览器都一致。像Chrome和Firefox这样的现代浏览器通常不会尝试将以"0"开头的字符串解析为八进制...

    javaScript parseInt字符转化为数字函数使用小结.docx

    假设我们需要将字符串`"09"`转换为数字,期望的结果应该是`9`,但实际上`parseInt("09")`的结果却是`0`。这是因为`parseInt()`将`"09"`识别为了八进制数,而八进制数不允许出现`8`或`9`,因此返回`0`。 **解决方案...

    【JavaScript源代码】JavaScript parseInt()与Number()区别案例详解.docx

    如果字符串的第一个字符就不能解析为数字,它会返回`NaN`。例如,`parseInt('123a')`返回123,因为'a'无法解析为数字。 `Number()`函数则更为通用,它可以将多种类型转换为数字,包括字符串、布尔值等。当`Number()...

    03-map-parseInt.md

    最终,`['1','2','3'].map(parseInt)`的结果为`[1,NaN,NaN]`。 #### 重点强调 为了能够正确理解和运用`map`与`parseInt`函数,开发者需要清楚地知道: - `parseInt`函数的基本用法。 - 如何根据不同的基数正确...

    前端面试题之parseInt.zip

    例如,当`radix`超出有效范围,或者字符串为空时,`parseInt`的行为是什么?答案是,如果`radix`超出范围,函数会抛出一个`RangeError`;若字符串为空,它将返回`NaN`。 4. **性能与优化**:前端面试也可能考察对...

    javaScript parseInt字符转化为数字函数使用小结

    parseInt(“10”) 到 以后都能得到正确的结果,但如果是parseInt(“08”) 或parseInt(“09”)则返回0; 首先看parseInt语法:parseInt(string, radix); 如果后面参数没写就以第一个的开头判断其中string为要转换的...

    javascript parseInt与Number函数的区别.docx

    综上所述,`parseInt`和`Number`函数虽然都能将字符串转换为数字,但它们的处理方式和适用场景存在明显的差异。开发者在选择使用哪个函数时,应该根据实际的需求来决定。例如,在需要精确控制数字的进制或确保一致性...

    ParseInt函数参数设置介绍

    这个字符串可以包含前导零,但不能包含小数点或者负号(负号应作为单独的符号在函数调用外部处理)。例如,`ParseInt("123")`将返回整数123。 第二个参数是可选的,用于指定字符串表示的数字的基数(即进制)。基数...

    Javascript 函数parseInt()转换时出现bug问题

    当`parseInt()`处理这个近似的值时,它会将结果截断为112,而不是预期的113。 为了修复这个问题,可以改变`yuanToFen`函数的返回值,如描述中建议的那样,将`parseInt(yuan*100,10)`改为`parseInt(yuan*1000,10)/10...

    Javascript中使用parseInt函数需要注意的问题

    在IE8中,parseInt会将带有前导零的数字字符串(如"09")误解为八进制数,这会导致非预期的结果,比如 parseInt("09") 会返回0而不是9。 为了解决这个问题,可以使用parseInt函数的第二个参数,即radix(基数)参数...

    javascript parseInt 大改造

    这就是为什么parseInt("08")返回0的原因,因为"08"不是一个有效的八进制数。 为了避免这类问题,作者建议明确指定parseInt函数的第二个参数,即基数。例如,要将"AF"解析为十六进制数,可以使用parseInt("AF", 16)...

    JavaScript的parseInt 进制问题

    这就是为什么在你的例子中,`"2009-05-05"`中的`"05"`被解析为八进制的5(即十进制的5),而不是你期望的十进制的5。八进制的5等于十进制的5,所以这不是你想要的结果。 为了避免这种问题,你需要明确指定解析的...

    JavaScript的parseInt 取整使用

    Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型...

    JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    根据这个规则,当尝试解析"08"或"09"这样的字符串时,因为"0"开头被当作是八进制数的标志,但八进制中并没有"8"和"9"这两个数字,所以JavaScript会将这两个字符串按照八进制转换为十进制数,其结果为0。 现在,让...

    JS实现手写parseInt的方法示例

    标题和描述中提到的“JS实现手写parseInt的方法示例”涉及到JavaScript编程领域中的一个重要函数parseInt。parseInt函数是JavaScript中的内置函数,用于将一个字符串转换为指定基数的整数。手写parseInt不仅有助于...

Global site tag (gtag.js) - Google Analytics