不小心范了一个低级错误,这个问题也是很多初学者容易忽略滴,它就是js中的整数转换函数parseInt(string, radix)。
使用parseInt转换"01" - "07"时,返回的结果和预期的一样,相应得到1 - 7,如果是parseInt("08")、parseInt("09")...,那么得到的数值将不是8、9...,大家可以试试。
不清楚parseInt使用方法的兄弟就会觉得很奇怪:为什么反回的值这么怪异?
其实不是parseInt怪异,而是我们在使用过程忽略了它的第二个参数。
parseInt(string, radix)的作用是将string转换为整数,第二个参数是设置string的格式,常用的有2、8、10、16,表示string是多少进制的数。
radix 可取值的范围是2~36,如果不在这个范围内,将返回NaN。
如果设置radix的值是0或者不设置时,会自动识别string的格式:
以 "0x" 开头,parseInt() 会把 string 除0x外的其余部分当作十六进制数,
以 "0" 开头,parseInt() 会把 string 除0外的字符当作八进制或十六进制数,
以 1 ~ 9 的数字开头,parseInt() 将把它当作十进制数。
看到这里,应该明白为什么parseInt("08")返回的不是8了吧,因为把它当八进制了,而八进制是没有8的,所
以要想得到8,那就parseInt("08",10)。
总之,为了避免parseInt("08")得到0这样而不是8的问题存在,在任何使用parseInt的地方都明确指定要转换的格式,即使parseInt("5"),也要写成parseInt("5",10),养成一个好的惯,
一看就知道
parseInt("11",10) 是要将十进制的"11"转换为整数,
parseInt("11",2) 是要将二进制的"11"转换为整数。
分享到:
相关推荐
JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...
### JavaScript中的`parseInt`函数分析 #### 一、引言 在JavaScript编程中,`parseInt`函数是一个常用且重要的函数,用于将字符串转换为整数。然而,在使用`parseInt`时,开发者可能会遇到一些意料之外的行为,...
### JavaScript中的parseInt与Number函数的区别 #### 一、概述 在JavaScript编程中,开发者经常会遇到需要将字符串转换成数字的情况。对于这样的需求,JavaScript提供了多种方法来实现这一目标,其中最为常用的两...
在JavaScript的世界里,`parseInt()`函数是一个非常常见且重要的转换工具,它用于将字符串转换为整数。然而,由于其特定的行为和潜在的陷阱,它也有可能成为开发过程中的一个“惨案”。在这个主题中,我们将深入探讨...
这就是为什么parseInt("08")返回0的原因,因为"08"不是一个有效的八进制数。 为了避免这类问题,作者建议明确指定parseInt函数的第二个参数,即基数。例如,要将"AF"解析为十六进制数,可以使用parseInt("AF", 16)...
比如说parseInt(“010”,10)就是10进制的结果:10,parseInt(“010”,2)就是2进制的结果:2,parseInt(“010”,8)就是8进制的结果:8,parseInt(“010”,16)就是2进制的结果:16。 下面我来说说没有指定进制单位的...
### JavaScript `parseInt()` 函数的进制转换注意事项 #### 概述 `parseInt()` 是 JavaScript 中一个非常常用的方法,主要用于将字符串转换成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数则是该...
JavaScript(简称JS)是一种广泛用于网页和网络应用的脚本语言,主要负责处理客户端的交互逻辑。在网页开发中,事件扮演着至关重要的角色,它们允许用户与页面进行互动,如点击按钮、提交表单等。本文将详细介绍...
### JavaScript中的parseInt函数详解 #### 一、概述 在JavaScript编程中,`parseInt()`函数是一个非常重要的工具,用于将字符串转换成整数。它在处理数据格式化、表单验证等场景时尤其有用。本文旨在深入探讨`...
js parsefloat parseint JavaScript提供了3个显式的类型转换函数,分别是eval()、parseInt()和parseFloat()。 eval()函数:将字符串表达式转换成数字值。例如,语句total=eval(“432.1*10”)...
JavaScript中的parseInt函数是一个非常实用的函数,它用于将字符串解析成整数。然而,它也存在一些陷阱,特别是在解析涉及到进制转换的时候。本文将详细探讨parseInt函数的使用,以及它的陷阱,并给出解决方案。 ...
标题中提到的问题在于,当调用`parseInt("08")`并且没有明确指定`radix`时,JavaScript会尝试根据字符串的前缀来判断其可能的进制。在默认情况下,`parseInt()`的行为如下: 1. 如果字符串以`0x`开头,那么它被识别...
如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照“0开头的是八进制数”的规则转换了!正好现在是9月,我随手选的日期,正好暴露了这个问题,我要是在上半年做这个,...
JavaScript为此提供了两个非常有用的函数:parseInt和parseFloat。它们虽然名称相似,用途也相近,但在处理字符串时存在一定的差异。本文将详细解释parseInt和parseFloat的区别,并通过实例进行演示。 首先,让我们...
JS中的parseInt()和map()是两个常用的内置函数,它们在处理字符串和数组时有各自独特的应用和注意事项。 parseInt()函数主要功能是从字符串中解析出一个整数。它能够处理不同进制的数字字符串,并且可以跳过字符串...
JavaScript中的`parseInt`函数是一个非常常用的工具,用于将字符串转换为整数。它解析字符串开头的部分,直到遇到非数字字符为止。然而,`parseInt`的行为并非总是直截了当,尤其是在处理带有前导零的数字时,这正是...
在JavaScript编程语言中,`parseInt()`函数用于将字符串转换成整数。然而,当你尝试解析以零开头的数字字符串,比如"08"或"09"时,你会遇到一些特殊的处理方式,尤其是在某些特定的浏览器环境中,如IE内核的浏览器。...
`JavaScript`中的`parseInt`和`Number`函数都是用来将字符串转换为数字的,但它们在处理字符串的方式上存在显著的差异。 `parseInt`函数的主要功能是解析一个字符串参数,并根据指定的基数(radix)返回一个整数。...
parseInt(“10”) 到 以后都能得到正确的结果,但如果是parseInt(“08”) 或parseInt(“09”)则返回0; 首先看parseInt语法:parseInt(string, radix); 如果后面参数没写就以第一个的开头判断其中string为要转换的...