深入理解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的with语句使用方法
Sep 21 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
jquery offset函数应用实例
Nov 14 Javascript
JavaScript中匿名、命名函数的性能测试
Sep 04 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
Angular.js实现动态加载组件详解
May 28 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
jquery无缝图片轮播组件封装
Nov 25 jQuery
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
JS遍历树层级关系实现原理解析
Aug 31 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临时文件的安全性分析
2014/07/04 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python list元素为tuple时的排序方法
2018/04/18 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
StringBuilder和String的区别
2015/05/18 面试题
面包店的创业计划书范文
2014/01/16 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
篮球赛口号
2014/06/18 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
女方离婚起诉书
2015/05/18 职场文书
关于感恩的作文
2019/08/26 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
Java基础之this关键字的使用
2021/06/30 Java/Android
MySQL池化框架学习接池自定义
2022/07/23 MySQL
从原生JavaScript到React深入理解
2022/07/23 Javascript