js字符串转换成数字与数字转换成字符串的实现方法


Posted in Javascript onJanuary 08, 2014

js字符串转换成数字

将字符串转换成数字,得用到parseInt函数。
parseInt(string) : 函数从string的开始解析,返回一个整数。

举例:
parseInt('123') : 返回 123(int);
parseInt('1234xxx') : 返回 1234(int);

如果解析不到数字,则将返回一个NaN的值,可以用isNaN()函数来检测;

举例 :
var i = parseInt('abc');
if (isNaN(i))
{
alert('NaN value');
}

同样的parseFloat函数是将字符串转换成浮点数。

举例:parseFloat('31.24abc') : 返回 31.24;

js数字转换成字符串

将字符串转换成数字,得用到String类的toString方法

举例:
var i = 10;
var s = i.toString();
alert(typeof s); //将输出 String

js数字与字符串的区别

js的数字的加法与字符串的连接都是 + 符号, 所以究竟是加还是字符串的连接就取决与变量的类型。

举例:
var a = 'abc' + 'xyz'; //a的值为:abcxyz,字符串与字符串是连接
var a = 10 + 5; //a的值为:15,数字是加
var a = 'abc' + 10; //a的值为:abc10,字符串与数字,自动将10转换成字符串了
var a = 'abc' + 10 + 20 + 'cd'; //a的值为:abc1020cd
var a = 10 + 20 + 'abc' + 'cd'; //a的值为:30abccd,可以数字加的先数字加,然后再连接

补充:

js字符串转换数字。方法主要有三种

转换函数、强制类型转换、利用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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
扩展JavaScript功能的正确方法(译文)
Apr 12 Javascript
jquery getScript动态加载JS方法改进详解
Nov 15 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
利用jquery包将字符串生成二维码图片
Sep 12 Javascript
javascript移出节点removeChild()使用介绍
Apr 03 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
vue在线动态切换主题色方案
Mar 26 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 Javascript
JS获取计算机mac地址以及IP的实现方法
Jan 08 #Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 #Javascript
jquery实现非叠加式的搜索框提示效果
Jan 07 #Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 #Javascript
JSF中confirm弹出框的用法示例介绍
Jan 07 #Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 #Javascript
javascript表单验证使用示例(javascript验证邮箱)
Jan 07 #Javascript
You might like
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
python常见数制转换实例分析
2015/05/09 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
python实现梯度下降算法
2020/03/24 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
Python 文件数据读写的具体实现
2020/01/24 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
工作会议欢迎词
2014/01/16 职场文书
医德医风个人总结
2015/02/28 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书