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中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
js 字符串转换成数字的三种方法
Mar 23 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
JS请求servlet功能示例
Jun 01 Javascript
javascript基本常用排序算法解析
Sep 27 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
JavaScript实现省市联动过程中bug的解决方法
Dec 04 Javascript
layui table设置前台过滤转义等方法
Aug 17 Javascript
vue 移动端记录页面浏览位置的方法
Mar 11 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
基于mysql的bbs设计(四)
2006/10/09 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
python僵尸进程产生的原因
2017/07/21 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
代码分析Python地图坐标转换
2018/02/08 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
师范生个人推荐信
2013/11/29 职场文书
关于元旦的广播稿
2014/02/16 职场文书
法定授权委托证明书
2014/09/27 职场文书
民间借贷借条范本
2015/05/25 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书