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 相关文章推荐
基于jquery的一个图片hover的插件
Apr 24 Javascript
理解Javascript_13_执行模型详解
Oct 20 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
javascript中的document.open()方法使用介绍
Oct 09 Javascript
利用Keydown事件阻止用户输入实现代码
Mar 11 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
JavaScript封装单向链表的示例代码
Sep 17 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
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php安装swoole扩展的方法
2015/03/19 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python读取目录下最新的文件夹方法
2018/12/24 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
windows下python安装pip方法详解
2020/02/10 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
质检员岗位职责
2013/12/17 职场文书
个人查摆剖析材料
2014/02/04 职场文书
银行给客户的感谢信
2015/01/23 职场文书
全陪导游词开场白
2015/05/29 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
德生BCL3000抢先使用感受和评价
2022/04/07 无线电