详解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中常用的55个经典技巧
Aug 12 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
vue实现消息的无缝滚动效果的示例代码
Dec 05 Javascript
Vue中如何实现proxy代理
Apr 20 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 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 base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
js如何判断输入字符串长度
2015/12/16 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python构造IP报文实例
2020/05/05 Python
Python 实现简单的客户端认证
2020/07/29 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
高中考试作弊检讨书
2014/01/14 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
体育活动总结范文
2014/05/04 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
前台岗位职责
2015/02/13 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Ajax实现三级联动效果
2021/10/05 Javascript
python基础之函数的定义和调用
2021/10/24 Python