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渐变发光导航菜单的实例代码
Mar 27 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
使用jQuery实现Web页面换肤功能的要点解析
May 12 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
使用store来优化React组件的方法
Oct 23 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生成压缩文件实例
2015/02/07 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
详解Vite的新体验
2021/02/22 Javascript
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python 监测文件是否更新的方法
2019/06/10 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
python匿名函数的使用方法解析
2019/10/10 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
标准导师推荐信(医学类)
2013/10/28 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
公民代理授权委托书
2014/09/24 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
面试感谢信范文
2015/01/22 职场文书