JavaScript parseInt() 函数
JavaScript 全局函数定义和用法
parseInt() 函数可解析一个字符串,并返回一个整数。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
当忽略参数 radix , JavaScript 默认数字的基数如下:
- 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
- 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
- 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
语法
parseInt(string, radix)
参数 | 描述 |
---|---|
string | 必需。要被解析的字符串。 |
radix | 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 |
浏览器支持
所有主要浏览器都支持 parseInt() 函数
提示和注释
注意: 只有字符串中的第一个数字会被返回。
注意: 开头和结尾的空格是允许的。
注意:如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。
注意:在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
实例
实例
我们将使用 parseInt() 来解析不同的字符串:
document.write(parseInt("10") + "<br>");
document.write(parseInt("10.33") + "<br>");
document.write(parseInt("34 45 66") + "<br>");
document.write(parseInt(" 60 ") + "<br>");
document.write(parseInt("40 years") + "<br>");
document.write(parseInt("He was 40") + "<br>");
document.write("<br>");
document.write(parseInt("10",10)+ "<br>");
document.write(parseInt("010")+ "<br>");
document.write(parseInt("10",8)+ "<br>");
document.write(parseInt("0x10")+ "<br>");
document.write(parseInt("10",16)+ "<br>");
以上实例输出结果:
尝试一下 »
注意:旧浏览器由于使用旧版本的ECMAScript(ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制),所以在解析("010") 将输出8。
JavaScript 全局函数
MCCF
353***4841@qq.com
实际上,Javascript 开放地支持一些数字字符串直接进行运算,这使得在Web编程中不清楚客户端传来的数据被解析成字符串还是整数时得到诸多方便。
例如:
甚至 "12.5"*"8"。
都返回 Number 类型的 100(不是字符串"100")。
当然 "50"+"50" 不行,因为这会被解析为字符串 "5050"。
也可以比较,比如 "100"==50+50,但并非全等(===)。
但是 parseInt 在这种情况下依旧有其用处。因为对于 "100px"*100 这种运算,显然难以得到我们希望的结果——我们甚至可以不需要 "px"。
比如,使用 HTML DOM 将 id="area" 的元素宽度缩小为 50%,则可使用以下代码:
MCCF
353***4841@qq.com