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 相关文章推荐
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
js命名空间写法示例
Dec 18 Javascript
jQuery通过ajax快速批量提交表单数据
Oct 25 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 Javascript
Vue实现active点击切换方法
Mar 16 Javascript
JavaScript设计模式之工厂模式简单实例教程
Jul 03 Javascript
javascript解析json格式的数据方法详解
Aug 07 Javascript
javascript对象3个属性特征
Nov 17 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
Angular封装搜索框组件操作示例
2019/04/25 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
python解决网站的反爬虫策略总结
2016/10/26 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python实现进程同步和通信的方法
2018/01/02 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Django缓存Cache使用详解
2020/11/30 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
优秀企业获奖感言
2014/02/01 职场文书
高中军训感言600字
2014/03/11 职场文书
遗产继承公证书
2014/04/09 职场文书
导游词格式
2015/02/13 职场文书
违纪学生保证书
2015/02/27 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2015年教务工作总结
2015/05/23 职场文书