JS的全局函数parseInt函数标准语法是:
parseInt(string, radix)
string | 必需。要被解析的字符串。 |
radix |
可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。 |
比如parseInt("021",8); // ->17
但是,如果第一个参数如果是Number呢?
比如parseInt(021,8); // ->15
原因:直接把021当成十进制Number来做int解析,发现021是八进制数,变成十进制数是17,再对17按8进制数形式做int解析。即:
parseInt(021,8);-->parseInt(17,8);-->1*8+7=15
parseInt(022,8);-->parseInt(2*8+2,8);-->parseInt(18,8);-->1,18后面的第二个数字8是非法的8进制数码。
parseInt(019,8);-->? 解释:019中,0为前导字符,往后一个一个地取合法八进制数码字符(0-7)来拼接一个合法的完整八进制数。所以拼接01-->parseInt(1,8);-->1。
parseInt(22,8);-->22已经是十进制数了,直接按八进制数解析,结果为:2*8+2=18.
类似,请体会:
parseInt("12*3", 10); // 12
parseInt(12*3, 10); // 36
相关推荐
3. 对于包含非数字字符的字符串,`parseInt()`在遇到第一个非数字字符后停止,而`Number()`会尝试整个字符串直到遇到非数字字符。 理解这些差异对于编写准确的JavaScript代码至关重要,尤其是在处理用户输入或解析...
- `parseInt`遇到第一个非数字字符后就会停止解析并返回已经解析出来的部分。 - `Number`函数会尝试解析整个字符串,直到无法解析为止。 - **八进制处理不同**: - 在ECMAScript 5及以前版本中,`parseInt`函数...
`parseInt()`则只解析到第一个非数字字符。 2. **空字符串和空格**:空字符串会被转换为`NaN`,前导或尾随空格会被忽略。 3. **科学记数法**:`Number()`可以识别科学记数法,如`Number("1.23e-4")`将返回0.000123...
如果字符串的第一个字符不能转换为数字,`parseInt`会返回`NaN`(Not a Number)。注意,`parseInt`会截断结果,只返回整数部分。 相比之下,`Number`函数更为直接和简单。它尝试将任何类型的值转换为一个数字。...
`parseInt()`函数主要用于将字符串转换为整数,它会忽略字符串开头的空格,并且只解析到第一个非数字字符为止。主要规则如下: - 数字正常转化:如果是浮点数,只保留整数部分。 - 字符串起始包含数字:这部分...
使用Number函数的一个优点是其简单的使用方式,但是需要注意的是,如果参数不能被解析为一个有效的数字,那么Number函数会返回NaN(Not a Number,非数字)。 在处理类似信用卡有效期等敏感数据时,准确性和兼容性...
3. **非数字字符处理**:`parseInt`会从左向右扫描字符串,直到遇到第一个无法解析为数字的字符为止。例如: - `parseInt("123abc")` 返回123。 - `parseInt("abc123")` 返回NaN(Not-a-Number),因为在字符串的...
如果第一个字符无法转换为数字,parseInt将返回NaN(Not-a-Number,即非数字值)。 在手写parseInt时,需要注意以下几点: 1. 处理不同类型的输入值,只接受字符串或数字类型的输入,其他类型应返回NaN。 2. 去除...
如果第一个字符不是数字或负号,`parseInt()` 将返回 `NaN`。如果第一个字符是数字,则继续解析后续的字符,直到遇到非数字字符为止。`parseInt()` 还有一个特点是可以指定字符串的基数(进制),通过第二个参数来...
如果第一个字符就是非数字,parseInt将返回NaN(Not a Number的缩写),表示不是一个有效的数字。 另一方面,parseFloat函数用于解析一个字符串参数,并返回一个十进制数。与parseInt不同的是,parseFloat总是从...
parseInt接受两个参数:第一个是要转换的字符串,第二个是可选的基数(radix),用来指定字符串的进制格式。如果第二个参数radix没有提供,或者是0,或者radix的值是16或2-36之间的数,JavaScript引擎会根据字符串的...
第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会返回不同的结果。 Number() Number()函数的转换规则如下: •如果参数是Date对象,...
如果第一个字符不是数字,而是一个0,parseInt()默认会以八进制来解析,否则将默认按十进制解析。在解析过程中,一旦遇到无法被进制所识别的字符,解析就会停止。如果字符串以空格开始或结束,这些空格会被忽略。...
然而,`parseInt`在处理非数字字符时有时会给出不符合预期的结果,因为它会忽略字符串开头的空格,并且在找到第一个非数字字符后停止解析。例如,`parseInt("123 apples")`会返回`123`,这可能不是我们期望的结果。 ...
`parseInt` 函数可以接受两个参数,第一个是待转换的字符串,第二个是一个可选的基数参数(radix),用于指定字符串中的数字的基数。如果不指定基数,JavaScript会根据字符串的开头来决定是按照八进制还是十进制来...
如果字符串的第一个字符不能转换为数字,parseInt将返回NaN(Not a Number,不是一个数字)。 接下来,我们通过一些具体的示例来展示parseInt的使用: ```javascript parseInt("10"); // 返回 10 parseInt("19", ...
2. 如果string的第一个非空白字符不能转换为数字,或者radix参数不在2到36之间,parseInt()将返回NaN(Not a Number)。 3. parseInt()函数在解析过程中会忽略后面的所有非数字字符。也就是说,它只考虑字符串中第...