详解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 相关文章推荐
jquery弹出框的用法示例(一)
Aug 26 Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 Javascript
jQuery中animate的几种用法与注意事项
Dec 12 Javascript
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 Javascript
node中IO以及定时器优先级详解
May 10 Javascript
原生js实现移动小球(碰撞检测)
Dec 17 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
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
Python读写Excel文件的实例
2013/11/01 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python制作刷网页流量工具
2017/04/23 Python
zookeeper python接口实例详解
2018/01/18 Python
python实现两张图片的像素融合
2019/02/23 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
python安装及变量名介绍详解
2020/12/12 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
远程教育心得体会
2014/01/03 职场文书
职工代表大会主持词
2014/04/01 职场文书
经济担保书范文
2014/04/02 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
实现GO语言对数组切片去重
2022/04/20 Golang