JavaScript中的Number数字类型学习笔记


Posted in Javascript onMay 26, 2016

使用IEEE754格式来表示整数和浮点数值。
浮点数值:该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。浮点数值需要内存空间是保存整数值的两倍。最高精度是17为小数,但在进行算术运算时其精度远远不如整数。

JavaScript中的Number数字类型学习笔记

各种数值类型:十进制,八进制(在严格模式下无效),十六进制
八进制字面量的第一位必须是0,然后是八进制数字序列(0~7)。如果字面值中的数值超出了范围,那么前导0将被忽略,后面的数值将被当做十进制数来解析

070//56
079//79

十六进制字面值的前两位必须是0x,后跟十六进制数字(0~9及A~F)。其中字母A~F可大小也可小写

0xA//10

在进行算术计算时,所有以八进制和十六进制表示的数值最终都将被转换为十进制数值

数值范围:

JavaScript中的Number数字类型学习笔记

如果某次计算中的结果中得到了一个超出javascript数值范围的值,那么这个值将被转换为特殊的Infinity值,该值无法参与下一次的计算,因为Infinity是无法参与计算的数值。如果这个数是正数则被转换为Infinity(正无穷),如果这个数是负数则被转换为-Infinity(负无穷)。

-10/0//-Infinity
10/0//Infinity

JavaScript中的Number数字类型学习笔记

isInfinite()判断一个数是否有穷。

var result = Number.MAX_VALUE + Number.MAX_VALUE
console.log(isFinity(result));//false

NaN

console.log(NaN === NaN)//false

0/0//NaN

isNaN:接收一个参数,会尝试将这个值转换为数值,返回布尔值

console.log(isNaN('10'));//false
console.log(isNaN('bb'));//true

数值转换
有3个函数可以把非数值转换为数值
Number():使用于任何数值类型。

1.null

Number(null)//0
undefined
Number(undefined)//NaN

2.布尔值

Number(true)//1
Number(false)//0

3.字符串

Number('bb')//NaN,非数值字符
Number('123')//123,数值字符
Number('')//0,空串

4.对象
如果是对象,则调用对象的valueOf()方法,然后依照上述的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。
5.parseInt()/parseFloat():用于将字符串转换为数值。

parseInt():从第一个字符串开始解析,直到解析到非数字字符,可接受两个参数,第二个参数代表不同的进制,默认转换为十进制数。

parseInt('')//NaN,空串
parseInt(22.4)//22
parseInt('12bu')//12
parseInt('10',2)//2
parseInt('10',8)//8
parseFloat():从第一个字符串开始解析,第一个小数点有效,忽略前导0,只能转换为十进制数值。

parseFloat('')//NaN
parseFloat('090')//90
parseFloat('2.3.4')//2.3

总结

  • 不区分整数值和浮点数, JavaScript中所有数字均用64位浮点数值标识(IEEE 754)。
  • 就像java程序员所熟悉的double类型
  • 取值范围在 ±1.7976931348623157 × 10 308 到 ±5 × 10 −324 之间
  • 文字:

    • 整数
      • 十六进制 0x
      • 八进制 0
    • 浮点表示
    • Math类
      • 方法
        • pow // 求幂
        • round //四舍五入
        • ceil //向上取整
        • floor //向下取整
        • abs //求绝对值
        • max //最大值
        • min //最最小值
        • sqrt
        • log
        • exp
        • acos
        • asin
        • atan
        • atan2
        • random
        • sin
        • cos
      • 常量
        • PI
        • E
        • LN2
        • LN10
        • LOG2E
        • LOG10E
        • PI
        • SQRT1_2
        • SQRT2
    • 无限值
      • 正无穷
        • Infinity //rw
        • Number.POSITIVE_INFINITY // r
        • 1/0
        • Number.MAX_VALUE + 1
      • 负无穷
        • Number.NEGATIVE_INFINITY //rw
        • -Intifinty //r
        • -1/0
        • -Number.MAX_VALUE - 1
      • NaN
        • 不与任何值相等 包括它自己.
        • NaN //rw
        • Number.NaN //r
        • 0/0 //计算结果为NaN
      • Zero
        • Number.MIN_VALUE/2
        • -Number.MIN_VALUE/2
        • -1/Infinity
        • -0
    • Rounding-error

var x = .3 - .2 
   var y = .2 - .1
   x == y
   x == .1 // => false .3 -.2 不等于 ./
   y == .1 // => true .2 - .1 等于 .1
Javascript 相关文章推荐
一些常用的JS功能函数代码
Jun 23 Javascript
Javascript 学习笔记 错误处理
Jul 30 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
Mar 28 Javascript
使用mini-define实现前端代码的模块化管理
Dec 25 Javascript
jQuery中:enabled选择器用法实例
Jan 04 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
基于javascript的异步编程实例详解
Apr 10 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 #Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 #Javascript
JS代码实现table数据分页效果
May 26 #Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 #Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 #Javascript
JavaScript数组的栈方法与队列方法详解
May 26 #Javascript
详解JavaScript中this关键字的用法
May 26 #Javascript
You might like
检测png图片是否完整的php代码
2010/09/06 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
js constructor的实际作用分析
2011/11/15 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
Vue实现购物车功能
2017/04/27 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
python操作redis方法总结
2018/06/06 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
python+opencv实现阈值分割
2018/12/26 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
合作协议书怎么写
2014/04/18 职场文书
医院信息公开实施方案
2014/05/09 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
先进人物事迹材料
2014/12/29 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS