深入理解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实现点击标题输入详细信息
Apr 16 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 Javascript
使用AOP改善javascript代码
May 01 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
js轮盘抽奖实例分析
Apr 17 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
webpack 开发和生产并行设置的方法
Nov 08 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
Oct 09 Javascript
javascript实现移动端轮播图
Dec 09 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
php empty函数 使用说明
2009/08/10 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
python中requests小技巧
2017/05/10 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
python字典改变value值方法总结
2019/06/21 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Django框架反向解析操作详解
2019/11/28 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
师范生自荐信
2013/10/27 职场文书
办公室文秘岗位职责
2013/11/15 职场文书
青春奉献演讲稿
2014/05/08 职场文书
大学生求职信例文
2014/06/29 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
四年级小学生评语
2014/12/26 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技