一、parseInt介绍
示例:parseInt(string, radix)
解析一个字符串并返回指定基数的十进制整数,radix
是2-36之间的整数,表示被解析字符串的基数。
1、parseInt语法
代码如下(示例):
parseInt(string, radix);
参数:
string
要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用 ToString 抽象操作)。字符串开头的空白符将会被忽略。
radix
(可选)
从 2 到 36,表示字符串的基数。例如指定 16 表示被解析值是十六进制数。请注意,10不是默认值!
2.返回值
从给定的字符串中解析出的一个整数。或者 NaN,当
- radix 小于 2 或大于 36 ,或
- 第一个非空格字符不能转换为数字。
代码如下(示例):
parseInt('123', 5) // 将'123'看作5进制数,返回十进制数38 => 1*5^2 + 2*5^1 + 3*5^0 = 38
示例
代码如下(以下示例均返回15
):
parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt("015", 10); // parseInt(015, 8); 返回 13
parseInt(15.99, 10);
parseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15 * 3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);
代码如下(以下示例均返回NaN
):
parseInt("Hello", 8); // 根本就不是数值
parseInt("546", 2); // 除了“0、1”外,其它数字都不是有效二进制数字
总结
1.parseInt
函数将其第一个参数转换为一个字符串,对该字符串进行解析,然后返回一个整数或 NaN
。
2.如果不是NaN
,返回值将是以第一个参数作为指定基数 radix
的转换后的十进制整数。(例如,radix
为10
,就是可以转换十进制数,为8
可以转换八进制数"07",16
可以转换十六进制数"0xff",以此类推)。
3.如果parseInt
遇到的字符不是指定 radix
参数中的数字,它将忽略该字符以及所有后续字符,并返回到该点为止已解析的整数值。 parseInt
将数字截断为整数值。 允许前导和尾随空格。
4.如果 radix
是 undefined
、0
或未指定的,JavaScript会假定以下情况:
-
如果输入的
string
以"0x"
或"0x"
(一个0,后面是小写或大写的X)开头,那么radix
被假定为16,字符串的其余部分被当做十六进制数去解析。 -
如果输入的
string
以"0"(0)
开头,radix
被假定为8(八进制)或10(十进制)。具体选择哪一个radix取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用parseInt
时,一定要指定一个radix
。 -
如果输入的
string
以任何其他值开头,radix
是 10 (十进制)。
5.如果第一个字符不能转换为数字,parseInt会返回 NaN。