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 相关文章推荐
Javascript 事件流和事件绑定
Jul 16 Javascript
jQuery 前的按键判断代码
Mar 19 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
JS求平均值的小例子
Nov 29 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
微信小程序 swiper组件构建轮播图的实例
Sep 20 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
vue2.0 和 animate.css的结合使用
Dec 12 Javascript
angularJs中$scope数据序列化的实例
Sep 30 Javascript
小程序云开发如何实现图片上传及发表文字
May 17 Javascript
Vuex实现购物车小功能
Aug 17 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读写文件的方法(生成HTML)
2006/11/27 PHP
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
wordpress之wp-settings.php
2007/08/17 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
javascript cookies操作集合
2010/04/12 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
2016/03/31 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python实现多并发访问网站功能示例
2017/06/19 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
保安公司服务承诺书
2014/05/28 职场文书
求职自我评价范文
2015/03/09 职场文书