不小心范了一个低级错误,这个问题也是很多初学者容易忽略滴,它就是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()` 函数的进制转换注意事项 #### 概述 `parseInt()` 是 JavaScript 中一个非常常用的方法,主要用于将字符串转换成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数则是该...
JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...
这就是为什么在某些情况下,`parseInt("08")`和`parseInt("09")`会返回0的原因。 值得注意的是,这个行为并不是所有浏览器都一致。像Chrome和Firefox这样的现代浏览器通常不会尝试将以"0"开头的字符串解析为八进制...
现在,让我们来详细说明JavaScript中的parseInt("08")和parseInt("09")返回0的原因及解决方法。 首先,正如上文所述,当parseInt()函数在接收到"0"开头的字符串时,会尝试按照八进制进行解析。由于八进制系统只使用...
- `parseInt("08")` 返回0,因为"08"不是有效的八进制数。 2. **指定基数的重要性**:为了避免上述问题,可以显式地指定基数为10,确保字符串始终被解释为十进制数: - `parseInt("08", 10)` 返回8。 - `...
它的处理方式与 parseInt() 函数相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符或第二个小数点为止,然后把该字符之前的字符串转换成浮点数。如果第一个字符不是有效数字,将返回 NaN。 例如,`...
这是因为当遇到如`parseInt('011')`这样的字符串时,如果不指定基数,那么在某些浏览器或JavaScript引擎中可能会被误解为八进制数(以'0'开头),而在ES5之后的规范中,它应该被理解为十进制。指定基数可以避免这种...
### JavaScript中的parseInt与Number函数的区别 #### 一、概述 在JavaScript编程中,开发者经常会遇到需要将字符串转换成数字的情况。对于这样的需求,JavaScript提供了多种方法来实现这一目标,其中最为常用的两...
例如,`parseInt("1234sd")`返回1234,`parseInt("0xC", 16)`返回12,而`parseInt("011", 8)`返回9。`parseFloat()`与`parseInt()`相似,但用于解析浮点数。 现在我们转向AJAX。在JavaScript中,`XMLHttpRequest`...
这是因为`parseInt()`将`"09"`识别为了八进制数,而八进制数不允许出现`8`或`9`,因此返回`0`。 **解决方案:** 为了避免这类问题,应该明确指定`radix`参数为`10`,即使用`parseInt("09", 10)`,这样可以确保始终...
在JavaScript中,以下值会被转换为 `false`:空字符串 `''`、0、`false`、`undefined`、`null` 和 `NaN`。所有其他值,包括非零数字和非空字符串,都会转换为 `true`。 6. `toFixed()` 方法:这个方法用于将数值...
`Number()`、`parseInt()`和`parseFloat()`是处理字符串转换为数值的关键函数,对于理解和编写JavaScript代码至关重要。本篇文章将详细阐述这三个函数的转换规则。 首先,我们来看`Number()`函数。这个函数可以尝试...
在JavaScript的世界里,`parseInt()`函数是一个非常常见且重要的转换工具,它用于将字符串转换为整数。然而,由于其特定的行为和潜在的陷阱,它也有可能成为开发过程中的一个“惨案”。在这个主题中,我们将深入探讨...
在JavaScript编程语言中,字符型数据(通常指字符串类型)转换为整型数据是一项常见的操作需求,尤其是在处理用户输入、解析数据或进行数值计算时。本文将深入探讨如何利用JavaScript来实现这一转换,并在此过程中...
唯一转换为false的值是0、-0、null、undefined、NaN、空字符串和false本身。 除了这些基本转换函数之外,JavaScript还提供了parseInt(string, radix)和parseFloat(string)函数,它们专门用于将字符串转换为整数和...
- `parseInt("0xA")` 返回 10(十六进制转换为十进制)。 - `parseInt("13")` 返回 13。 - `parseInt("070")` 在 ES3 中返回 56(被视为八进制),而在 ES5 中返回 70(被视为十进制)。 - `parseInt(070)` 在 ES3 ...
主要介绍了JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法,因转换的字符串数字都以0开头,导致parseInt函数在浏览器和Android WebView中转换结果不一样,本文给出了解决方法,需要的朋友可以参考下
Number对象提供了如parseInt、parseFloat等转换函数,帮助我们处理数值。 在JavaScript中,对象是键值对的集合,可以看作是一种无序的数据结构。我们可以通过点表示法或方括号表示法访问对象的属性。此外,...
在JavaScript中,数据类型转换是编程过程中不可或缺的一部分,因为JavaScript是一种动态类型语言,变量的数据类型可以在运行时改变。本文将详细讲解两种数据类型转换的方法,以及`parseInt`和`parseFloat`这两个常用...
### JavaScript-js宝典笔学习记知识点详解 #### 1. 输出语句 `document.write("")` 在JavaScript中,`document.write()` 方法用于将文本、HTML 表达式等直接写入到文档流中。通常用于页面加载时动态生成内容。例如...