js 字符串转换成数字的三种方法


Posted in Javascript onMarch 23, 2013

方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

1. 转换函数:

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

一些示例如下:

parseInt("1234blue");   //returns   1234
parseInt("0xA");   //returns   10
parseInt("22.5");   //returns   22
parseInt("blue");   //returns   NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

parseInt("AF",   16);   //returns   175
parseInt("10",   2);   //returns   2
parseInt("10",   8);   //returns   8
parseInt("10",   10);   //returns   10

如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:

parseInt("010");   //returns   8
parseInt("010",   8);   //returns   8
parseInt("010",   10);   //returns   10

parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

下面是使用parseFloat()方法的示例:

parseFloat("1234blue");   //returns   1234.0
parseFloat("0xA");   //returns   NaN
parseFloat("22.5");   //returns   22.5
parseFloat("22.34.5");   //returns   22.34
parseFloat("0908");   //returns   908
parseFloat("blue");   //returns   NaN

2. 强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

可以用下面的代码段测试Boolean型的强制类型转换。

Boolean("");   //false   ?   empty   string
Boolean("hi");   //true   ?   non-empty   string
Boolean(100);   //true   ?   non-zero   number
Boolean(null);   //false   -   null
Boolean(0);   //false   -   zero
Boolean(new   Object());   //true   ?   object

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:

用法                   结
果
Number(false)                  0
Number(true)                   1
Number(undefined)              NaN
Number(null)                   0
Number( "5.5 ")                5.5
Number( "56 ")                 56
Number( "5.6.7 ")              NaN
Number(new   Object())         NaN
Number(100)                    100

最后一种强制类型转换方法String()是最简单的,示例如下:

var   s1   =   String(null);   //"null"
var   oNull   =   null;
var   s2   =   oNull.toString();   //won't   work,   causes   an   error

3. 利用js变量弱类型转换

举个小例子,一看,就会明白了。

<script>
var   str= '012.345 ';
var   x   =   str-0;
x   =   x*1;
</script>

上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

Javascript 相关文章推荐
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
json的定义、标准格式及json字符串检验
May 11 Javascript
推荐4个原生javascript常用的函数
Jan 12 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
Bootstrap表格制作代码
Mar 17 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
layui多iframe页面控制定时器运行的方法
Sep 05 Javascript
jquery多选项卡效果实例代码(附效果图)
Mar 23 #Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 #Javascript
关于div自适应高度/左右高度自适应一致的js代码
Mar 22 #Javascript
JS实现淘宝幻灯片效果的实现方法
Mar 22 #Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 #Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 #Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 #Javascript
You might like
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
移动端界面的适配
2017/01/11 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
python调用opencv实现猫脸检测功能
2019/01/15 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
python实现3D地图可视化
2020/03/25 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
高中军训广播稿
2014/01/14 职场文书
毕业生工作求职信
2014/06/30 职场文书
会员卡清退活动总结
2014/08/27 职场文书
个人自我剖析材料
2014/09/30 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
党员倡议书
2015/01/19 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年入党积极分子评语
2015/03/26 职场文书