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 相关文章推荐
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
javascript loadScript异步加载脚本示例讲解
Nov 14 Javascript
Javascript检查图片大小不要让大图片撑破页面
Nov 04 Javascript
初识Node.js
Mar 20 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
vue实现点击关注后及时更新列表功能
Jun 26 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
Jul 07 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
如何使用vuex实现兄弟组件通信
Nov 02 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中var_export与var_dump的区别分析
2010/08/21 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
协议书的格式
2014/04/23 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
教师节班会开场白
2015/06/01 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python