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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
Mar 13 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
Jun 10 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
了解VUE的render函数的使用
Jun 08 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
node使用request请求的方法
Dec 20 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
webpack4.0 入门实践教程
2018/10/08 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
个人实用的自我评价范文
2013/11/23 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
办公室主任岗位职责
2015/01/31 职场文书
考勤制度通知
2015/04/25 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
电工生产实习心得体会
2016/01/22 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏