JavaScript数值转换的三种方式总结


Posted in Javascript onJuly 31, 2014

在JavaScript中,数值转换一般有三种方式:

一、Number(param)函数:param可以用于任何数据类型

1.1 param是Boolean值,true和false分别转换为1和0;

1.2 param是数值,只是简单的传入和返回

1.3 param是null和undefined,分别返回0和NaN

1.4 param是字符串,遵循下列规则:

1.4.1 如果字符串中只包含数字,则转换为十进制,前导0被忽略;

1.4.2 如果字符串中包含有效的浮点数格式,则返回对应的浮点数值,前导0被忽略;

1.4.3 如果字符串包含有效的十六进制,则返回等大的十进制数值

1.4.4 如果字符串为空,则返回0

1.4.5 如果字符串中包含除上述格式外的字符,则返回NaN

1.5 param是对象,则调用valueOf()方法,依照前面的规则转换返回字符串值,若返回NaN,则调用toString()方法,再次依照前面的规则转换返回字符串值。

1.6 示例:

<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = Number("hello"); //NaN 
var num2 = Number(""); //0 
var num3 = Number("00022"); //22 
var num4 = Number(true); //1</span>

二、parseInt(param):把字符串转换成整数,param是字符串类型。

parseInt()忽略字符串前面的空格,直到找到第一个非空格字符S;若S不是数字或者负号,则返回NaN(即parseInt()对空字符返回NaN,注意Number()对空返回0),若S是数字,parseInt()会继续解析下一个字符,直到解析完所有字符或者遇到了一个非数字字符。parseInt()支持对八进制、十六进制的解析

<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = parseInt("1234blue"); //1234 
var num2 = parseInt(""); //NaN 
var num3 = parseInt("22.5"); //22 
var num4 = parseInt("070"); //八进制,转换为十进制的56</span>

三、parseIFloat(param):把字符串转换成浮点数,param是字符串类型。

与parseInt类似,parseFloat()从第一个字符开始解析,直到解析完所有字符或者遇到了一个非浮点数字符。第一个小数点有效,但是第二个则无效,且该函数只能解析十进制数,因为它始终会忽略前导0.

<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = parseFloat("1234blue"); // 1234 
var num2 = parseFloat("0xf6"); // 0 
var num3 = parseFloat("22.5"); // 22.5 
var num4 = parseFloat("22.5.4"); //22.5 
var num5 = parseFloat("3.125e7"); // 31250000</span>
Javascript 相关文章推荐
用于自动添加Digg This!按钮的JavaScript
Dec 23 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
Prototype源码浅析 Number部分
Jan 16 Javascript
原生js写的放大镜效果
Aug 22 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
Jquery 实现弹出层插件
Jan 28 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 #Javascript
JS数组的遍历方式for循环与for...in
Jul 31 #Javascript
js中回调函数的学习笔记
Jul 31 #Javascript
基于socket.io和node.js搭建即时通信系统
Jul 30 #Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 #Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 #Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 #Javascript
You might like
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
原生JS轮播图插件
2017/02/09 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
python批量提取word内信息
2015/08/09 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
写演讲稿要注意的六件事
2014/01/14 职场文书
企业办公室岗位职责
2014/03/12 职场文书
党员评议自我评价
2015/03/03 职场文书
小兵张嘎观后感
2015/06/03 职场文书
2016年教代会开幕词
2016/03/04 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js