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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
使用js对select动态添加和删除OPTION示例代码
Aug 12 Javascript
JavaScript操作Oracle数据库示例
Mar 06 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
关于使用js算总价的问题
Jun 23 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
Vue.js的模板语法详解
Feb 16 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
简单介绍django提供的加密算法
2019/12/18 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
带薪年假请假条
2014/02/04 职场文书
《手指教学》反思
2014/02/14 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
资料员岗位职责范本
2015/04/13 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang