parseInt中的转换细节
来源:互联网 发布:js yui在线压缩 编辑:程序博客网 时间:2024/06/04 20:49
避免误用parseInt
parseInt是一个将字符串转换为整数的函数,与parseFloat(将字符串转换为浮点数)对应,这两种函数是JavaScript提供的两种静态函数,用于把非数字的原始值转换为数字。
在开始转换时,parseInt会先查看位置0处的字符,如果该位置不是有效数字,则将返回NaN,不再深入分析。如果位置0处的字符是数字,则将查看位置1处的字符,并重复前面的测试,依此类推,直到发现非数字字符为止,此时parseInt()函数将把前面分析合法的数字字符转换为数值并返回。
浮点数中的点号对于parseInt来说属于非法字符,因此它不会被转换并返回,这样,在使用parseInt时,就存在潜在的误用风险。例如,我们并不希望parseInt("16")与parseInt("16 tons")产生相同的结果。如果该函数能够提醒我们出现额外文本就好了,但它不会那么做。
对于以0为开头的数字字符串,parseInt()函数会把它作为八进制数字处理,先把它转换为数值,然后再转换为十进制的数字返回。对于以0x开头的数字字符串, parseInt()函数则会把它作为十六进制数字处理,先把它转换为数值,然后再转换为十进制的数字返回。例如:
如果字符串的第一个字符是0,那么该字符串将基于八进制而不是十进制来求值。在八进制中,8和9不是数字,所以parseInt("08")和parseInt("09")的结果为0,这个错误导致了在程序解析日期和时间时经常会出现问题。幸运的是,parseInt可以接受一个基数作为参数,这样parseInt("08",10)结果为8,parseInt("09",10)结果为9。因此,建议读者在使用parseInt时,一定要提供这个基数参数。
通过在parseInt中提供基数参数,可以把二进制、八进制、十六进制等不同进制的数字字符串转换为整数。例如,下面把十六进制数字字符串"123abc"转换为十进制整数。
parseInt("123abc",16); // 1194684
再如,把二进制、八进制和十进制数字字符串转换为整数:
- parseInt中的转换细节
- parseint 转换类型有两个参数要注意细节
- js中的parseInt()、toString()进制转换问题
- parseInt 进制转换
- javascript中的parseInt函数
- 关于javascript中的parseInt
- java中的integer.parseint()
- js中的parseInt()函数
- js中的parseInt()
- javascript 数据类型转换(parseInt,parseFloat)
- 数值转换 Number() parseInt() parseFloat()
- javascript中的parseInt和parseFloat
- Java语句中的Integer.parseInt()
- js中的Number和parseInt
- parseInt()
- parseInt()
- parseInt()
- parseInt()
- bin/ld.exe: error: cannot find -landroid等问题
- 选择排序——堆排序
- 文章标题
- 杭电acm--1064
- Item 39:明智地使用private继承 Effective C++笔记
- parseInt中的转换细节
- 黑马程序员——网络编程
- Java中弹出对话框中的几种方式
- 文章标题
- HDU2025 查找最大元素
- Coursera_Stanford_ML_ex4_神经网络训练 作业记录
- html元素与间距
- 那些看着高大上的名词
- 自定义View画报表