详解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对id中含有特殊字符的转义处理示例
Sep 06 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
js判断iframe中元素是否存在的实现代码
Dec 24 Javascript
详解webpack3如何正确引用并使用jQuery库
Aug 26 jQuery
switchery按钮的使用方法
Dec 18 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
javascript实现前端成语点击验证
Jun 24 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
javascript实现连续赋值
2015/08/10 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python实现简单ftp客户端的方法
2015/06/28 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
五十岁生日宴会答谢词
2014/01/15 职场文书
安全教育感言
2014/03/04 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
产品销售计划书
2014/05/04 职场文书
专项法律服务方案
2014/06/11 职场文书
婚礼答谢词
2015/01/04 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
法制工作总结2015
2015/07/23 职场文书
远程教育学习心得体会
2016/01/23 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL