详解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中的new的使用方法与注意事项
May 16 Javascript
Javascript的一种模块模式
Mar 22 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 Javascript
关于微信中a链接无法跳转问题
Aug 02 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
原生js实现无限循环轮播图效果
Jan 20 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php页面缓存方法小结
2015/01/10 PHP
php实现搜索类封装示例
2016/03/31 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
js中将String转换为number以便比较
2014/07/08 Javascript
Javascript window对象详解
2014/11/12 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python Requests 基础入门
2016/04/07 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
python中pivot()函数基础知识点
2021/01/03 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
复古服装:RetroStage
2019/05/10 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
Linux面试题LINUX系统类
2015/11/25 面试题
打架检讨书400字
2014/01/17 职场文书
客服专员岗位职责
2014/02/28 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
预备党员个人总结
2015/02/14 职场文书
上下班时间调整通知
2015/04/23 职场文书