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中的对象化编程
Jan 16 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
Oct 20 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
vue 打包后的文件部署到express服务器上的方法
Aug 09 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
Aug 18 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
在vue中利用v-html按分号将文本换行的例子
Nov 14 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
实例浅析js的this
2016/12/11 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
python实现识别相似图片小结
2016/02/22 Python
Python实现的桶排序算法示例
2017/11/29 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
2014年预算员工作总结
2014/12/05 职场文书
音乐之声观后感
2015/06/04 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
导游词之山海关
2019/12/10 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
你知道Java Spring的两种事务吗
2022/03/16 Java/Android