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 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
基于jQuery的前端数据通用验证库
Aug 08 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
node.js中的fs.appendFileSync方法使用说明
Dec 17 Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
Vue.js每天必学之内部响应式原理探究
Sep 07 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
Vue 中对图片地址进行拼接的方法
Sep 03 Javascript
javascript实现图片轮换动作方法
Aug 07 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
html中select语句读取mysql表中内容
2006/10/09 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python sorted排序方法如何实现
2020/03/31 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
生物科学系大学生的自我评价
2013/12/20 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
北京导游词
2015/02/12 职场文书
中学教师读书笔记
2015/07/01 职场文书
Python实现简繁体转换
2021/06/07 Python