今天遇到一个有趣的问题,就是在用javascript的parseInt函数时,parseInt("08")或者parseInt("09")返回的居然是0,而parseInt("01")...parseInt("07")都是正确的,一开始很难理解,后来发现出现这个问题的原因是当在前面有"0"时,javascript会认为这是一个八进制数,而"08"和"09"不是一个合法的八进制数,所以导致了那个问题,但是parseFloat不会存在这个问题。
事实上,parseInt方法有一个可选参数来表示数字的进制,所以这应该不能算是一个bug,只是我们平时没有注意到这种细节问题。那么解决的方法很简单,就是使用parseInt("08",10)或者parseInt("09",10),通知javascript解释器使用十进制来解析就可以了。
下面是这个方法的说明:
parseInt()方法用于将一个字符串转换为整型数字。
语法:
parseInt(string, radix)
参数 |
描述 |
string |
必选项。所要转换的字符串 |
radix(进制) |
可选项。2到36,指定字符串的进制类型 |
注意:
- 只返回字符串的第一组连续数字
- 允许字符串包含空格
- 如果字符串的第一个字符不能被转换成数字,将返回NaN
- 如果没有指定进制参数,JavaScript将依照下列规则进行:
如果字符串以"0x"开始,视为16进制
如果字符串以"0"开始,视为8进制
其他的视为10进制
实例:
<script type="text/javascript">
document.write(parseInt("10") + "<br />");
document.write(parseInt("10.00") + "<br />");
document.write(parseInt("10.33") + "<br />");
document.write(parseInt("34 45 66") + "<br />");
document.write(parseInt(" 60 ") + "<br />");
document.write(parseInt("40 years") + "<br />");
document.write(parseInt("He was 40") + "<br />");
document.write("<br />");
document.write(parseInt("10")+ "<br />");
document.write(parseInt("10",10)+ "<br />");
document.write(parseInt("010")+ "<br />");
document.write(parseInt("10",8)+ "<br />");
document.write(parseInt("0x10")+ "<br />");
document.write(parseInt("10",16)+ "<br />");
document.write(parseInt("08")+ "<br />");
document.write(parseInt("08",10)+ "<br />");
</script>
输出结果:
10
10
10
34
60
40
NaN
10
10
8
8
16
16
0
8
分享到:
相关推荐
JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...
JavaScript中的parseInt函数是一个非常基础且重要的函数,它主要用于将字符串解析成指定基数的整数。本文将详细介绍parseInt的正确使用方法,确保读者能够更好地理解和掌握这一知识点。 首先,parseInt函数的语法是...
### JavaScript中的`parseInt`函数分析 #### 一、引言 在JavaScript编程中,`parseInt`函数是一个常用且重要的函数,用于将字符串转换为整数。然而,在使用`parseInt`时,开发者可能会遇到一些意料之外的行为,...
JavaScript中的`parseInt`函数是一个非常常用的工具,用于将字符串转换为整数。它解析字符串开头的部分,直到遇到非数字字符为止。然而,`parseInt`的行为并非总是直截了当,尤其是在处理带有前导零的数字时,这正是...
总的来说,理解`parseInt()`函数的工作原理以及JavaScript中的浮点数精度问题是避免此类问题的关键。在编写涉及数值转换和计算的代码时,开发者应谨慎处理这类细节,确保计算的准确性,特别是在金融和会计相关的应用...
本文实例讲述了javascript中parseInt()函数的定义和用法。分享给大家供大家参考。具体分析如下: 此函数可以解析一个字符串,并返回一个整数。 语法结构: 代码如下:parseInt(string, type) 参数列表: 参数 描述 ...
### JavaScript中的parseInt与Number函数的区别 #### 一、概述 在JavaScript编程中,开发者经常会遇到需要将字符串转换成数字的情况。对于这样的需求,JavaScript提供了多种方法来实现这一目标,其中最为常用的两...
JavaScript中的parseInt函数是用于将字符串转换为整数的内置函数,但是在使用时有一些需要注意的问题。首先,parseInt函数在不同的浏览器环境下可能会有不同的默认行为,这在IE8及更早版本的浏览器中表现得尤为明显...
### JavaScript中的parseInt函数详解 #### 一、概述 在JavaScript编程中,`parseInt()`函数是一个非常重要的工具,用于将字符串转换成整数。它在处理数据格式化、表单验证等场景时尤其有用。本文旨在深入探讨`...
这个过程称为取整,但需要注意的是,与Java等强类型语言的处理方式不同,在JavaScript中,parseInt函数的行为会受到字符串前缀和进制基数参数的影响。 首先,让我们来介绍一下JavaScript中的parseInt函数。parseInt...
### JavaScript `parseInt()` 函数的进制转换注意事项 #### 概述 `parseInt()` 是 JavaScript 中一个非常常用的方法,主要用于将字符串转换成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数则是该...
在这个主题中,我们将深入探讨`parseInt()`的工作原理、常见问题以及如何避免这些陷阱。 `parseInt()`函数的基本用法是接收两个参数:要解析的字符串和可选的基数(radix)。基数指定了字符串表示数字的进制,范围...
JavaScript是一种广泛应用于Web开发中的脚本语言,它提供了一组丰富的内置函数,用于处理字符串、数字以及...希望这篇文章能帮助理解JavaScript中parseInt和parseFloat的区别,并且在实践中更加灵活地应用这两个函数。
在这篇文章中,作者分享了自己遇到parseInt函数的诡异问题的经历,并且提到了《JavaScript高级程序设计》这本书对他的启示,最终他找到了一种解决方案。 问题的根源在于parseInt函数的基模式,这允许它解析不同进制...
`JavaScript`中的`parseInt`和`Number`函数都是用来将字符串转换为数字的,但它们在处理字符串的方式上存在显著的差异。 `parseInt`函数的主要功能是解析一个字符串参数,并根据指定的基数(radix)返回一个整数。...
最后,编程风格章节强调了JavaScript编程中的风格问题,包括语法标记的风格和语句的编写方式。这包括了大括号的位置、圆括号的使用、缩进、行尾分号以及代码块的组织等。好的编程风格能够使代码更易读、易维护。 总...