深入理解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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
jquery 获取表单元素里面的值示例代码
Jul 28 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
javascript 操作符(~、&、|、^、)使用案例
Dec 31 Javascript
jQuery 处理页面的事件详解
Jan 20 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
谈谈React中的Render Props模式
Dec 06 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
Apr 22 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
PHP中Array相关函数简介
2016/07/03 PHP
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python标准库sched模块使用指南
2017/07/06 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
高效使用Python字典的清单
2018/04/04 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
python中删除某个元素的方法解析
2019/11/05 Python
dpn网络的pytorch实现方式
2020/01/14 Python
python os模块在系统管理中的应用
2020/06/22 Python
Python爬虫教程知识点总结
2020/10/19 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
四年级科学教学反思
2014/02/10 职场文书
优秀团队获奖感言
2014/02/19 职场文书
PHP基本语法
2021/03/31 PHP
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server