javascript-parseInt

272 阅读3分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力

1. 是什么

parseInt(string, radix) 函数解析一个字符串,返回一个10进制的整数或者NaN

如果不是NaN,返回值将是以第一个参数作为指定基数 radix 的转换后的十进制整数。(例如,radix10,就是可以转换十进制数,为8可以转换八进制数"07",16可以转换十六进制数"0xff",以此类推)。

对于 radix 10以上的,英文字母表示大于9的数字。例如,对于十六进制数(基数16),则使用 A 到 F 。

如果 parseInt 遇到的字符不是指定 radix 参数中的数字,它将忽略该字符以及所有后续字符,并返回到该点为止已解析的整数值。 parseInt 将数字截断为整数值。 允许前导和尾随空格。

parseInt 可以理解两个符号。+ 表示正数,- 表示负数(从ECMAScript 1开始)。它是在去掉空格后作为解析的初始步骤进行的。如果没有找到符号,算法将进入下一步;否则,它将删除符号,并对字符串的其余部分进行数字解析。

1.1 参数
string
是一个字符串,例如”123“,‘0xF’,
radix
介于2-36之间的数,表示string字符串的进制进制,如10进制。
其中radix可以省略,默认为10进制。
1.2 举例
parseInt('11',2) 
//"11"这个字符串是2进制的返回3

parseInt('11',10)
//"11"这个字符串是10进制的返回11

parseInt('0xF',16)
//"0xF"这个字符串是16进制的返回15

2 注意事项

2.1 如果第一个字符不能被转换成数字,parseInt返回NaN。
parseInt("syl", 8); 
// 根本就不是数值,输出NaN

parseInt("5", 2); 
// 除了“0、1”外,其它数字都不是有效二进制数字,输出NaN
2.2 在基数为 undefined,或者基数为 0 或者没有指定的情况下,JavaScript 作如下处理:
1. 如果字符串 string"0x"或者"0X"开头, 则基数是16 (16进制).
2. 如果字符串 string"0"开头, 基数是8(八进制)或者10(十进制),
	那么具体是哪个基数由实现环境决定。
	ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。
	因此,永远都要明确给出radix参数的值。
3. 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。
2.3 如果字符串中间不属于radix参数所指定的基数中的字符那么该字符和其后的字符都将被忽略。开头和结尾的空白符允许存在
parseInt("22 3 2019")
//出现空格,忽略,输出22
parseInt(“2.366”)= 2 
//出现.,忽略,输出2
2.4 带有e的字符串请谨慎处理
parseInt("6.022e23", 10);        // 返回 6
parseInt(6.022e2, 10);          // 返回 602