您的位置:首页 > Web前端 > JavaScript

JavaScript探秘:用parseInt()进行数值转换

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

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


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

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

+"08" // 结果是 8
Number("08") // 8

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

延伸阅读

此文章所在专题列表如下:

我们应该如何去了解JavaScript引擎的工作原理

JavaScript探秘:编写可维护的代码的重要性

JavaScript探秘:谨慎使用全局变量

JavaScript探秘:var预解析与副作用

JavaScript探秘:for循环(for Loops)

JavaScript探秘:for-in循环(for-in Loops)

JavaScript探秘:Prototypes强大过头了

JavaScript探秘:eval()是“魔鬼”

JavaScript探秘:用parseInt()进行数值转换

JavaScript探秘:基本编码规范

JavaScript探秘:函数声明与函数表达式

JavaScript探秘:命名函数表达式

JavaScript探秘:调试器中的函数名

JavaScript探秘:JScript的Bug

JavaScript探秘:JScript的内存管理

JavaScript探秘:SpiderMonkey的怪癖

JavaScript探秘:命名函数表达式替代方案

JavaScript探秘:对象Object

JavaScript探秘:原型链 Prototype chain

JavaScript探秘:构造函数 Constructor

JavaScript探秘:可执行的上下文堆栈

执行上下文其一:变量对象与活动对象

执行上下文其二:作用域链 Scope Chains

执行上下文其三:闭包 Closures

执行上下文其四:This指针

JavaScript探秘:强大的原型和原型链

JavaScript函数其一:函数声明

JavaScript函数其二:函数表达式

JavaScript函数其三:分组中的函数表达式

JavaScript函数其四:函数构造器

JavaScript变量对象其一:VO的声明

JavaScript变量对象其二:VO在不同的执行上下文中

JavaScript变量对象其三:执行上下文的两个阶段

JavaScript变量对象其四:关于变量

JavaScript变量对象其五:__parent__ 属性

JavaScript作用域链其一:作用域链定义

JavaScript作用域链其二:函数的生命周期

JavaScript作用域链其三:作用域链特征

JavaScript闭包其一:闭包概论

JavaScript闭包其二:闭包的实现

JavaScript闭包其三:闭包的用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: