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 相关文章推荐
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
Oct 12 Javascript
利用div+jquery自定义滚动条样式的2种方法
Jul 18 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
javascript判断变量是否有值的方法
Apr 20 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
JavaScript实现数组随机排序的方法
Jun 26 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
vue中实现回车键登录功能
Feb 19 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
JS数组的赋值介绍
2014/03/10 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
Python守护线程用法实例
2017/06/23 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
C语言笔试题回忆
2015/04/02 面试题
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
大学生职业生涯设计书
2014/01/02 职场文书
《中华少年》教学反思
2014/02/15 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
无房证明范本
2014/09/17 职场文书
南京导游词
2015/02/03 职场文书
索赔员岗位职责
2015/02/15 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
如何写观后感
2015/06/19 职场文书
初中语文教师研修日志
2015/11/13 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL