javascript中parseInt()函数的定义和用法分析

本文实例讲述了javascript中parseInt()函数的定义和用法。分享给大家供大家参考。具体分析如下:

此函数可以解析一个字符串,并返回一个整数。

语法结构:


代码如下:

parseInt(string, type)

参数列表:

参数 描述
string 必需。要被解析的字符串。
type 可选。表示要解析的数字的基数,通俗的说就是数字的进制,比如二进制、八进制或者十六进制。该值介于2 ~ 36之间。

详细说明:

一.指定type参数:

指定type参数后,函数就会按照指定的type参数对字符串进行解析,例如:
1.parseInt("010",10),表示"010"是十进制,返回值就是10。
2.parseInt("010",2),表示"010"是二进制,返回值就是2。
3.parseInt("010",8),表示"010"是八进制,返回值是8。
4.parseInt("010",16),表示"010"是十六进制,返回值是16。
说明:返回值都是十进制,type说指定是第一个参数的进制,并且第二个参数值的返回是介于2-36之间,如果不在此区间,parseInt函数返回值为NaN。如果string参数中,并非都是数字,而是带有其他字符,则parseInt函数只返回第一个字符之前的数字。例如:
parseInt("123ab789",10)返回值是123,第一个字符a之后的全部省略。

二.不指定type参数:

当不指定type参数的时候,parseInt函数会自动判断是何种进制,在通常情况下是十进制,例如:

1.parseInt("23")返回值是23。
2.parseInt("23ab")返回值是23。

但是情况往往并非都是向上面那么简单,再来看个例子:

parseInt("0x12")返回值是18,并非按照返回第一个字符串之前的数字,这里就出现一种情况,如果字符串是以"0x"开头的就要注意了,因为这个时候"0x"后面的数字会被认为是十六进制,所以返回值是18。如果是以"0"开头,并且后面紧邻的不是字符,那么这个时候,在谷歌浏览器下会被以十进制解析,但是在IE浏览器下被以八进制解析。例如:
parseInt("0123")在谷歌浏览器下返回值是123,在IE浏览器下返回值是83。

希望本文所述对大家的javascript程序设计有所帮助。

(0)

相关推荐

  • JavaScript的parseInt 取整使用

    Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型. 复制代码 代码如下: public class Test { public static void main(String args[]) throws Exception { String str = "020"

  • javascript parseInt 函数分析(转)

    javascript的parseInt函数 javascript的parseInt函数,大家都知道是干啥的 但你知道 parseInt("07") 返回多少 ? parseInt("08") 又返回多少 ? 正确答案是 parseInt("07") 返回8 parseInt("08") 返回0 你知道问题在哪? 其实,这个问题可能大家都没想过吧. 用javascript的parseInt函数时, parseInt("

  • javascript parseInt与Number函数的区别

    但是parseInt("08", 10)是可以返回8的. 为搞清楚两者的区别, 参考了别人写的parseInt&Number的区别: parseInt Parses a string argument and returns an integer of the specified radix or base. 核心函数 实现版本 Navigator 2.0: If the first character of the string specified in parseInt(s

  • JS实现手写parseInt的方法示例

    前言 本文主要给大家介绍了关于JS实现手写parseInt的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 手写parseInt的实现:要求简单一些,把字符串型的数字转化为真正的数字即可,但不能使用JS原生的字符串转数字的API,比如Number() 示例代码 function _parseInt(str, radix) { let str_type = typeof str; let res = 0; if (str_type !== 'string' &&

  • js parseInt的陷阱分析小结

    复制代码 代码如下: var a = parseInt("09"), b = Number("09"); 很多人会认为a和b的值都是数字9,但实际上不是. parseInt的主要作用是把字符串转换为整数,或者把小数转换为整数.一般情况下,我们只用到它的第一个参数.但实际上,它有两个参数: parseInt(string, radix) parseInt会根据radix指定的进制进行转换,比如: 复制代码 代码如下: alert(parseInt("10&q

  • 关于javascript中的parseInt使用技巧

    要对表单中填写的日期格式进行客户端验证,于是在网上找了段代码,其中用到parseInt对年月日做判断,其中有类似这样的语句: ...... else if(parseInt(month)<1 || parseInt(month) >12) ...... 可是对于当前本来正确的日期,这里怎么也通不过.后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制.如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照&quo

  • javascript parseInt 大改造

    还隐约记得得知了来龙去脉,为自己掌握了一个经验而欢呼雀跃. 还隐约记得被这同一问题折磨了无数次后,无奈与痛下决心的心境. 首先我必须感谢那些即使这个问题我强调过无数次,也依然反复重复类似错误的人们. 没有他们反复犯错的鼓励,或许我不会认真考虑这个问题的解决方案. 其次,必须感谢<JavaScript高级程序设计>的作者和译者. 在这里我得到了解决该问题的启示,不然我依然要每每强调使用parseInt时应注意什么. 同时,希望在这里不仅仅留下一个解决方案. 解决问题的思路与想法,以及对问题举一反

  • js中parseInt函数浅谈

    从很热门的实例parseInt("09")==0说起.parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制.比如说parseInt("010",10)就是10进制的结果:10,parseInt("010",2)就是2进制的结果:2,parseInt("010",8)就是8进制的结果:8,parseInt("010",16)就是2进制的结果:16. 下面我来说

  • javascript中的parseInt和parseFloat区别

    先看代码: 复制代码 代码如下: <script> alert(parseInt("3.54 apples")); alert(parseFloat("3.54 apples")); </script> <script>alert(parseInt("3.54 apples"));alert(parseFloat("3.54 apples"));</script> 运行结果: p

  • 详解js中Number()、parseInt()和parseFloat()的区别

    一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如果是字符串: a.  如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0 b. 如果字符串中包含有效浮点格式,如"1.1",将其转换为对应的浮点数字,忽略前导0 c. 如果字符串中包含有效的十六进制格式,如"0xf",将其转换为相同大小的十进制数值 d. 如果字

随机推荐