深入理解JS中Number(),parseInt(),parseFloat()三者比较


Posted in Javascript onAugust 24, 2018

参考阅读:

在项目开发中我们经常会用到转型方法,尤其是JS这种松散型的语言。其中比较常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我们分别对这几种方法的转型机制进行详细地说明。具体内容详情如下所示:

【正文内容】

Number()

-------------------------------------------------------------------------------------
--Number()
--
--
--Boolean值,true和false值将分别被转为1和0。
--
--数字值,整型就是整型,浮点型就是浮点型,科学计数就科学计数
--
--null值,转为0
--
--二进制,八进制,十六进制格式,转为十进制的数值
--
--字符串为空,转为0
--
--字符串中是纯科学计数,数值会直接转为十进制的数值
--
--undefined , 对象 , 数组 ,字符串不为纯数字和科学计数时 返回NaN

------------------------------------------------------------------------------------ 

 //JS区分0和-0
 var num = 123;
 var num = 123.123;
 var num = 0b10;
 var num = 010;
 var num = 0xff;
 var num = 5e2;
 var num = 5e-2;
 var num = NaN;
 console.log('值: ' , num);
 console.log('类型: ' , typeof(num))
 //NaN本身为false
 //其他类型转为数值失败时都为NaN
 console.log(NaN - 100);
 if(NaN){
  console.log('Yes');
 }else{
  console.log('No');
 }
 //NaN
 var a = '123ad';
 //123
 var a = '123';
 //NaN
 var a = 'f3ad';
 //0
 var a = false;
 //1
 var a = true;
 //NaN
 var a = undefined;
 var a = new Object();
 var a = Array(1,23);
 //1e+124
 var a = 10e123;
 //3
 var a = 0b11;
 //255
 var a = 0xff;
 //1.23
 var a = 1.23;
 //0
 var a = '';
 //1200
 var a = '12e2';
 //0
 var a = null;
 //90
 var a = 0132;
 var n = Number(a);
 console.log(n);

parseInt()

----------------------------------------------------------------------------------------------------------------------------------------
--parseInt()
--
--
--数值正常转化,如果为浮点数,则转为整型,舍弃小数点后的数值
--
--字符串起始包含数字时则数字那段转为数值,后面舍弃
--
--二进制,八进制,十六进制转化时,转化为十进制的数值
--
--科学计数法,能解析时正常解析,不能时返回第一个数字
--
--Boolean,undefined , 对象 , 数组 ,空字符串,字符串开头不为纯数字和科学计数时 返回NaN
--
--parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
----------------------------------------------------------------------------------------------------------------------------------------       

//123
 var a = '123ad';
 //123
 var a = '123';
 //NaN
 var a = 'f3ad';
 //NaN
 var a = false;
 //NaN
 var a = true;
 //NaN
 var a = undefined;
 var a = new Object();
 //13 第一个值
 var a = Array(13,2);
 //3100000能够解析处时正常解析,不能时只返回第一个数字
 var a = 31e5;
 //3
 var a = 0b11;
 //255
 var a = 0xff;
 //1
 var a = 1.23;
 //NaN
 var a = '';
 //12 字符串只返回12e舍弃
 var a = '12e2';
 //NaN
 var a = null;
 //1
 var a = 1.5;
 //90
 var a = 0132;
 var n = parseInt(a);
 console.log(n);
 var a = parseInt("10",2);
 var a = parseInt("FF",16);
 var a = parseInt("10",8);
 console.log(a);

 parseFloat()

--------------------------------------------------------------------------------------------------------------------------------
--parseFloat()
--
--
--数值正常转化,整型为整型,浮点型为浮点型
--
--字符串起始包含数字时则数字那段转为数值,后面舍弃
--
--二进制,八进制,十六进制转化时,转化为十进制的数值
--
--科学计数法,能解析时正常解析,超出范围则返回Infinity
--
--Boolean,undefined , 对象 , 数组 ,空字符串,字符串开头不为纯数字和科学计数时 返回NaN
--
--不能有多个小数点报语法错误
--------------------------------------------------------------------------------------------------------------------------------       

//123
 var a = '123ad';
 //123
 var a = '123';
 //NaN
 var a = 'f3ad';
 //NaN
 var a = false;
 //NaN
 var a = true;
 //NaN
 var a = undefined;
 var a = new Object();
 //13 第一个值
 var a = Array(13,2);
 //3100000 范围过大将转为科学计数法再大将为Infinity
 var a = 31e5;
 //3
 var a = 0b11;
 //255
 var a = 0xff;
 //1.23
 var a = 1.23;
 //NaN
 var a = '';
 //1200
 var a = '12e2aa';
 //NaN
 var a = null;
 //1.5
 var a = 1.5;
 //90
 var a = 0132;
 //
 var a = 1.113;
 var n = parseFloat(a);
 console.log(n);

总结

以上所述是小编给大家介绍的深入理解JS中Number(),parseInt(),parseFloat()三者比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Span元素的width属性无效果原因及解决方案
Jan 15 Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
用js简单提供增删改查接口
May 12 Javascript
详解Vue 如何监听Array的变化
Jun 06 Javascript
layui type2 通过url给iframe子页面传值的例子
Sep 06 Javascript
微信小程序支付PHP代码
Aug 23 #Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 #Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 #Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 #Javascript
React key值的作用和使用详解
Aug 23 #Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
Aug 23 #Javascript
从零开始学习搭建React脚手架项目
Aug 23 #Javascript
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
微信JS接口大全
2016/08/25 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
旷课检讨书大全
2014/01/21 职场文书
个人近期表现材料
2014/02/11 职场文书
政协调研汇报材料
2014/08/15 职场文书
店铺转让协议书
2015/01/29 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
反邪教观后感
2015/06/11 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server