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 相关文章推荐
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 Javascript
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
轻松实现js图片预览功能
Jan 18 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
koa-router路由参数和前端路由的结合详解
May 19 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 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 加密与解密的斗争
2009/04/17 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
详解如何设置Python环境变量?
2019/05/13 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
python如何处理程序无法打开
2020/06/16 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
司机岗位职责
2013/11/15 职场文书
上班看电影检讨书
2014/02/12 职场文书
铲车司机岗位职责
2014/03/15 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
检讨书模板大全
2015/05/07 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS