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 相关文章推荐
用JTrackBar实现的模拟苹果风格的滚动条
Aug 06 Javascript
javascript数组使用调用方法汇总
Dec 08 Javascript
jquery下json数组的操作实现代码
Aug 09 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
js单例模式详解实例
Nov 21 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
javascript常用函数(1)
Nov 04 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 Javascript
Vue-Router模式和钩子的用法
Feb 28 Javascript
微信小程序制作表格的方法
Feb 14 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
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下载xls文件(自己动手写的)
2014/04/18 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
wxPython学习之主框架实例
2014/09/28 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
python下载的库包存放路径
2020/07/27 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
大学生职业生涯规划方案
2014/01/03 职场文书
小学庆六一活动方案
2014/02/28 职场文书
《长征》教学反思
2014/04/27 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
开学第一天的感想
2015/08/10 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL