JavaScript数值类型知识汇总


Posted in Javascript onNovember 17, 2019

整数

  • 十进制
  • 二进制

以零为开头,后面接一个小写或大写的拉丁文字母B(0b或者是0B)

  • 八进制

以0开头,然后是八进制数字序列(0-7) , 如果字面值中的数值超出范围,那么前导0将被忽略,后面的数值当作十进制解析。

  • 十六进制

十六进制字面值的前两位必须是 0x,后跟任何十六进制数字(0~9 及 A~F)。其中,字母 A~F可以大写,也可以小写;

浮点数

保存浮点数需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机的将浮点数转换为整数值。

var floatNum1 = 1.; // 小数点后面没有数字——解析为 1
var floatNum2 = 10.0; // 整数——解析为 10

默认会将小数点后面带有6个零以上的浮点数值转换为以e表示法表示的数值;

浮点数值的最高精度是17位小数;

数值范围

最大值Number.MAX_VALUE 1.7976931348623157e+308

最小值Number.MIN_VALUE 5e-324

  • Number.MIN_VALUE < var1 < Number.MAX_VALUE , isFinite(var1)返回false, 否则返回true
  • 如果值超过了js数值范围,那么这个数值自动被转换成特殊的Infinity值。实际情况 Number.MAX_VALUE + 1 还等于 Number.MAX_VALUE;
  • isFinite()函数判断数值是否位有穷,参数位于最小与最大数值之间时会返回 true

NaN

  • 任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN
  • NaN 与任何值都不相等,包括 NaN 本身
  • 实际上只有 0 除以 0 才会返回 NaN,正数除以 0 返回 Infinity,负数除以 0 返回-Infinity
  • isNaN() 。在接收到一个值之后,会尝试将这个值转换为数值。也适用于对象,先调用对象的valueOf()判断是否能转成数值,若不能调用toString()再测试返回值。

数值转换

有 3 个函数可以把非数值转换为数值: Number()、 parseInt()和 parseFloat()

Number()

  1. 如果是boolean类型, true返回1,false返回0;
  2. 如果是数值,只是简单的传入返回;
  3. 如果是null,返回0
  4. 如果是undefined, 返回NaN;
  5. 如果是字符串,字符串如果只包含数字,则将其转换成十进制数;如果是有效的浮点格式,将其转换成对应的浮点数值;如果是二进制或十六进制将其转换成对应的十进制数值;
alert(Number("3.14e5"));  // 314000
alert(Number("0b1111"));  // 15, 将二进制转换为十进制
alert(Number("017"));    // 17, 不会转为8进制
alert(Number("0x1a"));   // 26, 转换为16进制
alert(Number(""));     // 空字符串,返回0
alert(Number("1a"));    // 返回NaN

   6.如果是对象,调用对象的valueOf()方法,然后依照前面规则转换,如果valueOf返回值是NaN,则调用toString()方法,再依照前面的规则转换返回的字符串

parseInt()

第一个参数,要解析的数值字符串;第二个参数采用多少进制,不指定基数意味着让 parseInt()决定如何解析输入的字符串;

  1. 如果第一个字符不是数字字符或者负号, parseInt()就会返回 NaN;
  2. parseInt()转换空字符串会返回 NaN
  3. 如果第一个字符是数字字符, parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
parseInt("1234blue")  // 1234, blue忽略

parseInt("22.5");  // 22

parseInt不能解析二进制的数值,在ES5中,也不能解析八进制的数值;

parseInt("0b1111");   // 0
parseInt("071");  // 71,

parseFloat()

  1. parseFloat()只解析十进制值,因此它没有用第二个参数;
  2. 从第一个字符(位置 0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止;
  3. 它始终都会忽略前导的零
var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
使用jQuery的将桌面应用程序引入浏览器
Nov 19 Javascript
document.createElement()用法
Mar 13 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
基于node实现websocket协议
Apr 25 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
May 03 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
Feb 06 Javascript
js抽奖转盘实现方法分析
May 16 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
Nov 17 #Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 #Javascript
24行JavaScript代码实现Redux的方法实例
Nov 17 #Javascript
JavaScript如何处理移动端拍摄图片旋转问题
Nov 16 #Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 #Javascript
vue中注册自定义的全局js方法
Nov 15 #Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 #Javascript
You might like
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php mssql 数据库分页SQL语句
2008/12/16 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
Javascript 类型转换方法
2010/10/24 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
Ajax基础知识详解
2017/02/17 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
vue实现扫码功能
2020/01/17 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
python绘制箱型图
2021/04/27 Python