前者是单体内置方法,后者是Number方法
-
parseInt
parseInt(string, radix);参数
**
string**要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用[ToString](<http://www.ecma-international.org/ecma-262/6.0/#sec-tostring>)抽象操作)。字符串开头的空白符将会被忽略。radix可选从2到36,表示字符串的基数。例如指定 16 表示被解析值是十六进制数。请注意,10不是默认值!返回值
从给定的字符串中解析出的一个整数。(十进制表示)
或者
[NaN](<https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/NaN>),当radix小于2或大于36,或- 第一个非空格字符不能转换为数字。
解析过程:
(1)string参数若不为字符串,会被调用toString方法解析成字符串。
(2)radix参数:表示将字符串按何种进制来解析成数字
Ⅰ指定redix参数:按照指定参数作为进制去解析字符串。解析时会忽略字符串开头的空格, 若出现+-,则保留。 若radix小于 `2` 或大于 `36` ,第一个 非空格字符不能转换为数字,则都返回NaN。否则一直解析直到字符串末尾或遇到第一个不能解析成数字的字符,返回失败之前解析的结果。当用该方法解析浮点数时,只能解析整数部分,会发生**截断现象**。 Ⅱ如果 radix 是 **undefined、0或未指定的:** 0x会被按照16进制解析,0会被按照八进制或十进制解析。(ES5规定不能按照8进制解析,但是不是所有浏览器都实现)否则按10进制解析。 parseInt("0xF", 16); parseInt("F", 16); parseInt("17", 8); **parseInt(021, 8);先按8进制转换字符串,之后对字符串按8进制解析。** parseInt("015", 10); // parseInt(015, 10); 返回 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); -
Number.prototype.toString()
numObj.toString([radix])参数
radix指定要用于数字到字符串的转换的基数(从2到36)。如果未指定 radix 参数,则默认值为 10。表示将数字解析成何种进制的字符串表示
异常信息
**
[RangeError](<https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RangeError>)**如果toString()的 radix 参数不在 2 到 36 之间,将会抛出一个[RangeError](<https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RangeError>)。