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 相关文章推荐
jQuery Jcrop插件实现图片选取功能
Nov 23 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
Sep 25 Javascript
将两个div左右并列显示并实现点击标题切换内容
Oct 22 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
jQuery源码分析之jQuery中的循环技巧详解
Sep 06 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
JavaScript中闭包之浅析解读(必看篇)
Aug 25 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
Nov 06 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php中随机显示图片的函数代码
2011/06/23 PHP
php生成html文件方法总结
2014/12/01 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
班级学习计划书
2014/04/27 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
走群众路线剖析材料
2014/10/09 职场文书
打架检讨书
2015/01/27 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书