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 密码强度验证(兼容IE,火狐,谷歌)
Mar 15 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
Mar 21 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
TypeScript 学习笔记之基本类型
Jun 19 Javascript
javascript 单例模式详解及简单实例
Feb 14 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
vue-cli3配置与跨域处理方法
Aug 17 Javascript
微信小程序实现滑动操作代码
Apr 23 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
深入解析php之sphinx
2013/05/15 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python对数据库操作
2016/03/28 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
python数据爬下来保存的位置
2020/02/17 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
企业管理专业个人求职信范文
2013/09/24 职场文书
教师党员思想汇报
2014/01/06 职场文书
党员公开承诺书内容
2014/05/20 职场文书
安全责任书模板
2014/07/22 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
详解Redis瘦身指南
2021/05/26 Redis
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server