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 判断判断某个对象是Object还是一个Array
Jan 28 Javascript
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
Aug 17 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
js螺旋动画效果的具体实例
Nov 15 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
常用原生JS兼容性写法汇总
Apr 27 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
Aug 27 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
Nov 28 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP加密解密函数详解
2015/10/28 PHP
img的onload的另类用法
2008/01/10 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
语文教学随笔感言
2014/02/18 职场文书
教师一岗双责责任书
2014/04/16 职场文书
营业员岗位职责
2015/02/11 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书