深入理解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 相关文章推荐
一个js封装的不错的选项卡效果代码
Feb 15 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
分享一个asp.net pager分页控件
Jan 04 Javascript
javascript利用控件对windows的操作实现原理与应用
Dec 23 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
AngularJS解决ng-if中的ng-model值无效的问题
Jun 21 Javascript
浅谈Angular 中何时取消订阅
Nov 22 Javascript
jQuery实现轮播图及其原理详解
Apr 12 jQuery
详解vue使用插槽分发内容slot的用法
Mar 28 Javascript
详解如何修改 node_modules 里的文件
May 22 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
微信小程序支付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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
vue内置指令详解
2018/04/03 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
pytorch标签转onehot形式实例
2020/01/02 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
零基础学python应该从哪里入手
2020/08/11 Python
python集合的新增元素方法整理
2020/12/07 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
会计学生自我鉴定
2014/02/06 职场文书
母亲节演讲稿
2014/05/27 职场文书
校园新闻稿范文
2015/07/18 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
Python函数式编程中itertools模块详解
2021/09/15 Python