深入理解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 相关文章推荐
学习ExtJS Window常用方法
Oct 07 Javascript
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
比较新旧两个数组值得增加和删除的JS代码
Oct 30 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
JavaScript数组、json对象、eval()函数用法实例分析
Feb 21 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 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
提问的智慧(2)
2006/10/09 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
PHP echo()函数讲解
2019/02/15 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
AngularJS实现全选反选功能
2015/12/08 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
高中自我评价范文
2014/01/27 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
白莲教口号
2014/06/18 职场文书
公司财务人员岗位职责
2015/04/14 职场文书