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获取变量
Aug 24 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
javascript屏蔽右键代码
May 15 Javascript
javascript设计模式之解释器模式详解
Jun 05 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 Javascript
自定义javascript验证框架示例【附源码下载】
May 31 Javascript
JavaScript实现Excel表格效果
Feb 07 Javascript
vue如何清除浏览器历史栈
May 25 Vue.js
实例分析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计算2个日期的差值函数分享
2015/02/02 PHP
javascript中的继承实例代码
2011/04/27 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
标准毕业生自荐信范文
2013/11/04 职场文书
行政人事岗位职责
2014/03/17 职场文书
条幅标语大全
2014/06/20 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
暑期培训班招生方案
2014/08/26 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
2015年项目工作总结
2015/04/29 职场文书
学会感恩主题班会
2015/08/12 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python