详解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 相关文章推荐
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
Bootstrap每天必学之按钮(Button)插件
Apr 25 Javascript
深入理解jquery跨域请求方法
May 18 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
May 24 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
关于redux-saga中take使用方法详解
Feb 27 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
uni-app实现点赞评论功能
Nov 25 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 中的一些经验积累
2006/10/09 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php 操作调试的方法
2012/07/12 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
详解vue中axios的使用与封装
2019/03/20 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Sublime开发python程序的示例代码
2018/01/24 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
2014年元旦感言
2014/03/06 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
大国崛起日本观后感
2015/06/02 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python