学习JavaScript之parseInt()数值转换常被忽略的问题

使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。当字符串以”0″开头的时候就有可能会出问题,例如,部分时间进入表单域,在ECMAScript 3中,开头为”0″的字符串被当做8进制处理了,但这已在ECMAScript 5中改变了。为了避免矛盾和意外的结果,总是指定基数参数。

var month = "06",
    year = "09";
month = parseInt(month, 10);
year = parseInt(year, 10);

此例中,如果你忽略了基数参数,如parseInt(year),返回的值将是0,因为“09”被当做8进制(好比执行 parseInt( year, 8 )),而09在8进制中不是个有效数字。

替换方法是将字符串转换成数字,包括:

+"09" // 结果是 9
Number("09") // 9

这些通常快于parseInt(),因为parseInt()方法,顾名思意,不是简单地解析与转换。但是,如果你想输入例如“08 hello”,parseInt()将返回数字,而其它以NaN告终。

参考网址

时间: 2025-01-18 03:23:49

学习JavaScript之parseInt()数值转换常被忽略的问题的相关文章

JavaScript数值转换总结

在JavaScript中,数值转换一般有三种方式: 一.Number(param)函数:param可以用于任何数据类型 1.1  param是Boolean值,true和false分别转换为1和0: 1.2  param是数值,只是简单的传入和返回 1.3  param是null和undefined,分别返回0和NaN 1.4  param是字符串,遵循下列规则: 1.4.1  如果字符串中只包含数字,则转换为十进制,前导0被忽略: 1.4.2  如果字符串中包含有效的浮点数格式,则返回对应的浮

Javascript数值转换(Number,parseInt,parseFloat)

PS:赶紧抓紧时间看看吧~ * 有3个函数可以把非数值转换为数值:Number().parseInt().parseFloat() * 第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值. * 这三个函数对于同样的输入会有返回不同的结果: * * * Number()函数的转换规则如下: * 1,Boolean值,true和false将分别被转换为1或0: * 2,数字,简单的传入和返回: * 3,null,返回0: * 4,undefined,

javascript 的数值转换

js中有3个函数可以把非数值转换成数值:Number(),parseInt()和parseFloat(). Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值.这三个函数对于同样的输入会有返回不同的结果. Number()函数的转换规则如下: 如果是Boolean值,则转换成1或者0. 如果是数字,只是简单的传入传出. 如果是null,返回0. 如果是undefined,返回NaN. 如果是字符串,如果字符串中包含非数字字符,则将其转成NaN. 如果是对象,则调用对

Javascript 函数parseInt()转换时出现bug

这是一个很诡异的事情,今天测试的测出来的.parseInt(1.13*100),实际返回值是112.直接看代码吧 <head> <script type="text/javascript"> function test(){ var thisvalue = 0; thisvalue=yuanToFen($("#inp").val()); alert(thisvalue); } /*元转分*/ function yuanToFen(yuan){

如何理解并学习javascript中的面向对象(OOP) [转]

如果你想让你的javascript代码变得更加优美,性能更加卓越.或者,你想像jQuery的作者一样,写出属于自己优秀的类库(哪怕是基于 jquery的插件).那么,你请务必要学习javascript面向对象,否则你无法更灵活的使用javascript这门语言. 什么事闭包?到底什么是原型?(知道闭包和原型的,就算得上是javascript的高手了.但真正能够理解,并且灵活运用的人并不多)到底该如何学习javascript中的面向对象呢?在javascript这么语言正如日中天,相信不少人正在为

JavaScript中的数值转换方法(一)

JavaScript中有三个可以吧非数值转换成数值:Number():parseInt()和parseFloat(): Number(): 1.如果是Boolean值,true和false分别被转换为1和0: 2.如果是数字,只是简单的传入和返回: 3.如果是null值,则返回0: 4.如果是undefined,则返回NaN: 5.如果是字符串: 1).如果字符串中只包含数字,则将其转化为十进制数: 2).如果包含有效的浮点格式,则将其转化为对应的浮点数值: 3).如果字符串包含十六进制格式,则

轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型

一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1)原始值 存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置. (2)引用值 存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处. 为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型,还是引用类型.要实现这一点,解释程序则需 尝试判断该值是否

学习javascript总结下来的性能优化的小知识(一)

一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己不擅于思考懒得思考以至于里面说的一些精髓都没有太深入的理解. 鉴于想让自己有一个提升,进不了一个更加广阔的天地,总得找一个属于自己的居所好好生存,所以平时会有意无意的去积累一些使用jQuerry的常用知识,特别是对于性能要求这一块,总是会想是不是有更好的方式来实现. 下面是我总结的一些小技巧,仅供参考.(我先会说一

JavaScript 的 parseInt 取整

http://www.neoease.com/javascript-get-integer-via-parseint/ JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 parseInt 取整和 parseFloat 取浮点数. Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获