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 相关文章推荐
一个js控制的导航菜单实例代码
Dec 03 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
javascript读取本地文件和目录方法详解
Aug 06 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
如何用php获取文件名后缀
2013/06/09 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
jquery获取元素索引值index()示例
2014/02/13 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python单元测试简单示例
2018/07/03 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
企业形象策划方案
2014/05/29 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
北京英语导游词
2015/02/12 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
MongoDB数据库之添删改查
2022/04/26 MongoDB