`
chorpin
  • 浏览: 132216 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript的parseInt()方法

阅读更多
今天发现一个以前测试没有出现的问题,是一个javascript校验日期的方法。
当当前日期为2004-12-08时,我要得到日的数字,然后就用到了parseInt(date.getDate())也就是parseInt('08')。
这样调用后返回值是0。最后导致方法校验失败。而其他日期都没有问题,经过查看javaScript帮助文档。有下面的说明:
parseInt 方法
返回由字符串转换得到的整数。
parseInt(numString, [radix])
参数
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

说明
parseInt 方法返回与保存在 numString 中的数字值相等的整数。如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。

最后我把方法修改为parseInt('08', 10)就正确了。parseInt('08')怎么会返回0呢?这个方法是按照八进制进行处理,而8是八进制中永远不会出现的。所以导致转换失败。

在用javascript的parseInt函数时,parseInt("08")或者parseInt("09")返回的居然是0,而parseInt("01")...parseInt("07")都是正确的,一开始很难理解,后来发现出现这个问题的原因是当在前面有"0"时,javascript的debugger会认为这是一个八进制数,而"08"和"09"不是一个合法的八进制数,所以导致了那个问题,但是parseFloat不会存在这个问题。

    事实上,parseInt方法有一个可选参数来表示数字的进制,所以这应该不能算是一个bug,只是我们平时没有注意到这种细节问题。那么解决的方法很简单,就是使用parseInt("08",10)或者parseInt("09",10),通知javascript解释器使用十进制来解析就可以了。

还有,当进行数字比较时,如在分页中,输入页数的时候,如果用parseInt()来转换就必须注意这个问题,否则当输入如108,109等页数时就无法准确定位。
当然我们可以不用parseInt()方法来转换,直接比较数字,但是这时候又有一个需要注意的地方:
如果没有进行转换,JavaScript比较是按照字符串的方式来比较的,不管你赋予的是数字,字符还是布尔值,所有当比较数字时,会从第一位开始比较。但是我们还必须比较长度,否则有可能出现45大于234的情况,因为从第一位开始,4大于2,所以会出错误。当时如果比较了长度,因为长度45长度小于234,所以根本就不用按每一位来比较了。
0
0
分享到:
评论

相关推荐

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

    JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...

    javascript parseInt与Number函数的区别.docx

    对于这样的需求,JavaScript提供了多种方法来实现这一目标,其中最为常用的两种方法便是`parseInt`函数和`Number`函数。虽然它们的功能看起来相似,但在实际应用中却有着显著的不同之处。本文将详细介绍`parseInt`和...

    javascript parseInt 函数分析(转).docx

    ### JavaScript中的`parseInt`函数分析 #### 一、引言 在JavaScript编程中,`parseInt`函数是一个常用且重要的函数,用于将字符串转换为整数。然而,在使用`parseInt`时,开发者可能会遇到一些意料之外的行为,...

    javascript parseInt() 函数的进制转换注意细节.docx

    `parseInt()` 是 JavaScript 中一个非常常用的方法,主要用于将字符串转换成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数则是该字符串所表示数字的进制(可选)。如果省略第二个参数或提供了一个...

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

    本文旨在深入探讨`parseInt()`函数的工作原理、使用方法以及一些常见陷阱,并提供解决方案。 #### 二、基本语法 `parseInt()`函数的基本语法如下: ```javascript parseInt(string, radix); ``` - **string**:...

    javascript parseInt 大改造

    总结来说,作者通过深入研究parseInt函数的特性以及重定义JavaScript函数的高级技术,找到了一个解决方法。他不仅提供了一个具体的解决方案,而且通过自己的经历分享了解决这类问题的思路和方法,以及对问题的深入...

    parseInt()函数引发的惨案

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

    javascript parseInt与Number函数的区别

    `JavaScript`中的`parseInt`和`Number`函数都是用来将字符串转换为数字的,但它们在处理字符串的方式上存在显著的差异。 `parseInt`函数的主要功能是解析一个字符串参数,并根据指定的基数(radix)返回一个整数。...

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

    下面将详细介绍parseInt函数的使用方法和技巧,并对一些常见问题进行解释。 ### parseInt函数基本概念 `parseInt` 函数可以接受两个参数,第一个是待转换的字符串,第二个是一个可选的基数参数(radix),用于指定...

    javascript parseInt 函数分析(转)

    JavaScript中的`parseInt`函数是一个非常常用的工具,用于从字符串中解析出整数。它的工作原理是尝试识别并提取字符串开头的数字序列,并将其转换为对应的数值。然而,`parseInt`函数的行为并不总是直观的,特别是在...

    Javascript中parseInt的正确使用方式

    本文将详细介绍parseInt的正确使用方法,确保读者能够更好地理解和掌握这一知识点。 首先,parseInt函数的语法是: ```javascript parseInt(string, radix) ``` 其中,`string`参数表示需要被解析的字符串,`...

    JavaScript的parseInt 取整使用

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

    javascript常用方法

    ### JavaScript 常用方法 #### 1. `document.write("")` `document.write` 是一个用于在文档中写入文本、HTML 或者其他元素的方法。它通常在文档加载过程中被调用,一旦文档加载完成,调用 `document.write` 会重新...

    Javascript常用方法

    ### JavaScript 常用方法详解 #### 一、JavaScript 概览 JavaScript 是一种轻量级的编程语言,被广泛应用于网页开发中,为用户提供动态交互功能。它由三大部分组成:ECMAScript(语法部分)、BOM(浏览器对象模型...

    JavaScript标准参考教程

    数值章节涵盖了JavaScript中数值的处理方式,包括数值的表示、NaN、Infinity、parseInt和parseFloat方法等。对象章节则详细讲解了对象的生成、属性的读取和修改、以及对象引用等概念。特别地,还提到了类似数组的...

    JavaScript的parseInt 进制问题

    JavaScript中的`parseInt`函数是一个非常常用的工具,用于将字符串转换为整数。它解析字符串开头的部分,直到遇到非数字字符为止。然而,`parseInt`的行为并非总是直截了当,尤其是在处理带有前导零的数字时,这正是...

Global site tag (gtag.js) - Google Analytics