首先还是从很热门的实例parseInt("09")==0说起。
parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。
比如说parseInt("010",10)就是10进制的结果:10,parseInt("010",2)就是2进制的结果:2,parseInt("010",8)就是8进制的结果:8,parseInt("010",16)就是2进制的结果:16。
下面我来说说没有指定进制单位的时候,默认是10进制,但:如果是里面的Number是0开头的就认为是8进制的,如果是0x开头的就认为是16进制的。
parseInt("10")==>parseInt("010",10)===>10
parseInt("010")==>parseInt("010",8)==>8
parseInt("0x10")==>parseInt("010",16)==>16.
到这里很顺利.
许多事情不是想的那么顺利,比如说如果Number不是我们给的正常数字又怎么解释呢。查了些资料,是这样说的:
parseInt(Number)如果中间的Number遇到不是数字(0-9)的就中断往下解析,就只取不是数字之前的值去运算:
比如parseInt("100x"),就相当于parseInt("100")===》parseInt("100",10)==>100,
又如parseInt("0100x")===>parseInt("0100")===>parseInt("100",8)===>64.
到这里我们似乎无视了一个就是16进制中的有个x,它也不是数字,是不是遇到x也无视了呢。尝试下了发现在这个特殊处理了下,比如
parseInt("0x10")===>parseInt("10",16)===>16和最上面的结果相符,但却和我刚说的,不是字符就自动不解析就应该理解成parseInt("0")相违背。
这 里就需要注意下,parseInt里面的Number是这样的,当如果第一个不是0且不是字符就认为是10进制,一切照旧执行,遇到字母就停下来。又当如 果是第一个是0,后面那个就需要注意了,如果是x就继续往下走,这里的x不代表数值,只能和前面的0一起组成0x代表16进制的单位,后面的才按上面我们 讲的遇到非数字停止解析的规则来。比如parseInt("0xt")==>parseInt("0x")==> parseInt("",16)就是NaN了。
总结下,parseInt(Number)里面的值:
如果是第一位不是0就遇到字母就停止解析,并把字母前面的值作为10进制去解析,如果第一个就是字母那么值就是空,空成了NaN,比如:
parseInt("a")==>parseInt("",10)==>NaN.
parseInt("10a")==>parseInt("10")==>parseInt("10",10)==>10;
如果第一位是0,且第2位不是x也和上面一样遇到字母就停止解析,并把字母前面的值作为8进制去解析,比如:
parseInt("0a")==>parseInt("0")==>parseInt("0",10)==>0.
PS:这个有点特殊,因为0a被解析成了0,还不具备看做是8进制的结构,下面那个就明显了。
parseInt("010a")==>parseInt("010")==>parseInt("10",8)==>8;
如果第一位是0,且第2位是x那后面也和上面一样遇到字母就停止解析,并把字母前面的值作为16进制去解析,比如:
parseInt("0xt")==>parseInt("",16)==>NaN.
parseInt("0x12t")==>parseInt("12",16)==>18.
- 浏览: 175970 次
- 性别:
- 来自: 北京
-
相关推荐
#### 二、`parseInt`函数的基本用法 `parseInt`函数的基本语法如下: ```javascript parseInt(string, radix); ``` 其中: - `string`:要被解析的字符串。 - `radix`(可选):一个介于2到36之间的整数,表示`...
本文旨在深入探讨`parseInt()`函数的工作原理、使用方法以及一些常见陷阱,并提供解决方案。 #### 二、基本语法 `parseInt()`函数的基本语法如下: ```javascript parseInt(string, radix); ``` - **string**:...
`parseInt()`函数的基本用法是接收两个参数:要解析的字符串和可选的基数(radix)。基数指定了字符串表示数字的进制,范围从2到36。如果不提供基数,则`parseInt()`会尝试根据字符串的开头来判断其进制。默认情况下...
对于这样的需求,JavaScript提供了多种方法来实现这一目标,其中最为常用的两种方法便是`parseInt`函数和`Number`函数。虽然它们的功能看起来相似,但在实际应用中却有着显著的不同之处。本文将详细介绍`parseInt`和...
总结来说,作者通过深入研究parseInt函数的特性以及重定义JavaScript函数的高级技术,找到了一个解决方法。他不仅提供了一个具体的解决方案,而且通过自己的经历分享了解决这类问题的思路和方法,以及对问题的深入...
标题和描述中提到的“JS实现手写parseInt的方法示例”涉及到JavaScript编程领域中的一个重要函数parseInt。parseInt函数是JavaScript中的内置函数,用于将一个字符串转换为指定基数的整数。手写parseInt不仅有助于...
首先,我们来理解parseInt函数的基本用法。parseInt接受两个参数:第一个是要转换的字符串,第二个是可选的基数(radix),用来指定字符串的进制格式。如果第二个参数radix没有提供,或者是0,或者radix的值是16或2-...
本文实例讲述了JS中parseInt()和map()用法。分享给大家供大家参考,具体如下: parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09/08/2009"); alert("c="+c); ...
本文将详细介绍parseInt的正确使用方法,确保读者能够更好地理解和掌握这一知识点。 首先,parseInt函数的语法是: ```javascript parseInt(string, radix) ``` 其中,`string`参数表示需要被解析的字符串,`...
如果你需要处理完整的日期字符串,可能需要使用不同的方法,如`Date`对象或者正则表达式。 总的来说,`parseInt`是一个强大的工具,但使用时需要注意其默认行为。始终指定第二个参数以确保你得到预期的结果,同时在...
下面将详细介绍parseInt函数的使用方法和技巧,并对一些常见问题进行解释。 ### parseInt函数基本概念 `parseInt` 函数可以接受两个参数,第一个是待转换的字符串,第二个是一个可选的基数参数(radix),用于指定...
Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型...
因此,使用`parseFloat()`或者使用专门处理大数和精确计算的库(如`decimal.js`)可能是更好的选择。此外,使用`toFixed(n)`可以用来固定小数点后的位数,以确保显示的数值是准确的。 总的来说,理解`parseInt()`...
本文实例讲述了JS使用parseInt解析数字实现求和的方法。分享给大家供大家参考。具体如下: 在网页上使用JavaScript函数中的parseInt解析数字,并求和,有才吧,有空了研究一下。 运行效果如下图所示: 具体代码如下...
总结来说,parseInt()函数是一个在JavaScript编程中经常使用到的函数,它在解析数字字符串时非常有用,尤其是在需要将字符串形式的数字转换为整数形式时。但是,在使用时需要仔细考虑各种可能的进制情况,以避免解析...
JavaScript中的parseInt函数是用于将字符串转换为整数的内置函数,但是在使用时有一些需要注意的问题。首先,parseInt函数在不同的浏览器环境下可能会有不同的默认行为,这在IE8及更早版本的浏览器中表现得尤为明显...
由于parseInt()方法涉及到字符串与整数之间的转换,以及进制的转换,因此,正确理解和使用parseInt()方法对开发JavaScript应用程序是非常关键的。 parseInt()的基本语法是: ``` parseInt(string, radix) ``` 其中...