详解js中Number()、parseInt()和parseFloat()的区别


Posted in Javascript onDecember 20, 2016

一:Number()

如果是Boolean值,true和false值将分别被转换为1和0。

如果是数字值,只是简单的传入和返回。

如果是null值,返回0。

如果是undefined,返回NaN。

如果是字符串:

  a.  如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0

  b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0

  c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值

  d. 如果字符串为空,将其转换为0

  e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN

如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换返回的字符串值。

例: 

 var num1 = Number("Hello world");

 //NaN
 var num2 = Number("");





//0
 var num3 = Number("0000011");


  //11

二:parseInt()

处理整数的时候parseInt()更常用。parseInt()函数在转换字符串时,会忽略字符串前面的空格,知道找到第一个非空格字符。

如果第一个字符不是数字或者负号,parseInt() 就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。

如果第一个字符是数字字符,parseInt() 会继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符。

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法。

例:

var num1 = parseInt("AF",16);

 

//175


var num2 = parseInt("AF");





//NaN


var num3 = parseInt("10",2);


  
 //2
(按照二进制解析)


var num4 = parseInt("sdasdad");



 //NaN

三:parseFloat()

 与parseInt() 函数类似,parseFloat() 也是从第一个字符(位置0)开始解析每一个字符。也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。

 也就是说,字符串中第一个小数点是有效的,而第二个小数点就是无效的了,它后面的字符串将被忽略。

 parseFloat() 只解析十进制,因此它没有第二个参数指定基数的用法

 如果字符串中包含的是一个可解析为正数的数(没有小数点,或者小数点后都是零),parseFloat() 会返回整数。

例:

var num1 = parseFloat("123AF");

 

//123

var num2 = parseFloat("0xA");





//0

var num3 = parseFloat("22.5");


  
  //22.5

var num4 = parseFloat("22.3.56");



 //22.3

var num5 = parseFloat("0908.5");



  //908.5

parseInt() 和parseFloat() 的区别在于:

  • parseFloat() 所解析的字符串中第一个小数点是有效的,而parseInt() 遇到小数点会停止解析,因为小数点并不是有效的数字字符。
  • parseFloat() 始终会忽略前导的零,十六进制格式的字符串始终会被转换成0,而parseInt() 第二个参数可以设置基数,按照这个基数的进制来转换。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
利用jq让你的div居中的好方法分享
Nov 21 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
Jan 23 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
Vue.js实现分页查询功能
Nov 15 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
关于vue.js中实现方法内某些代码延时执行
Nov 14 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 #Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 #Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 #Javascript
js多个物体运动功能实例分析
Dec 20 #Javascript
JS高级运动实例分析
Dec 20 #Javascript
CSS+jQuery实现简单的折叠菜单
Dec 20 #Javascript
jQuery常见的选择器及用法介绍
Dec 20 #Javascript
You might like
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
Views rows style模板重写代码
2011/05/16 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
php常用字符函数实例小结
2016/12/29 PHP
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
JavaScript字符串对象
2017/01/14 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
全民健身日活动方案
2014/01/29 职场文书
六年级数学教学反思
2014/02/03 职场文书
职工运动会感言
2014/02/07 职场文书
保安岗位职责
2014/02/21 职场文书
市场拓展计划书
2014/05/03 职场文书
招标保密承诺书
2015/01/20 职场文书
上下班时间调整通知
2015/04/23 职场文书