深入理解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 相关文章推荐
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
javascript实现网站加入收藏功能
Dec 16 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
js时间戳和c#时间戳互转方法(推荐)
Feb 15 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 Javascript
微信小程序登录session的使用
Mar 17 Javascript
浅谈JS的原型和继承
May 08 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
JS中async/await实现异步调用的方法
Aug 28 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 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
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Python列表对象实现原理详解
2019/07/01 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
django 读取图片到页面实例
2020/03/27 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
数学教育专业求职信
2014/07/22 职场文书
2014公司年终工作总结
2014/12/19 职场文书
团组织推优材料
2014/12/29 职场文书
医德医风自我评价2015
2015/03/03 职场文书
出国留学自荐信模板
2015/03/06 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python
MySQL数据库 安全管理
2022/05/06 MySQL