es6基础系列二:Number
es6中关于Number类型的变化,主要有以下几点
- Number.isInteger(新增,判断是否为整数)
- Number.EPSILON(新增,判断是否可忽略的误差)
- Number.MAX_SAFE_INTEGER(新增,可以在js中安全且精确地表示的最大整数)
- Number.MIN_SAFE_INTEGER(新增,可以在js中安全且精确地表示的最小整数)
- Number.isSafeInteger(新增,表示在js中安全整数范围内,即是在-(253 - 1) 到 (253 - 1)之间)
- Number.isNaN(全局方法isNaN移植到Number下)
- Number.isFinite(全局方法isFinite移植到Number下,检测一个数是否有限数,可以不在js安全整数范围)
- Number.parseInt(全局方法parseInt移植到Number下)
- Number.parseFloat(全局方法parseFloat移植到Number下)
Number.isInteger
新增方法,判断是否为整数
Number.isInteger(Infinity) // false
Number.isInteger(-Infinity) // false
Number.isInteger(NaN) // false
Number.isInteger(null) // false
Number.isInteger(0) // true
Number.isInteger(-10) // true
Number.isInteger(10.3) // false
Number.EPSILON
新增方法,判断是否可以忽略的误差
0.1 + 0.2 // 0.30000000000000004
0.1 + 0.2 === 0.3 // false
// 这其中的误差可以忽略,可以通过下面的函数来判断误差是否可以忽略
function withinErrorMargin (left, right) {
return Math.abs(left - right) < Number.EPSILON
}
withinErrorMargin(0.1 + 0.2, 0.3) // true
withinErrorMargin(0.2 + 0.2, 0.3) // false
Number.MAX_SAFE_INTEGER
新增方法,表示js可以安全和精确表示的最大整数,也就是[IEEE-754](https://en.wikipedia.org/wiki/IEEE_floating_point)定义的(253 - 1)
Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1 // true
Number.MAX_SAFE_INTEGER === 9007199254740991 // true
Number.MIN_SAFE_INTEGER
新增方法,表示js可以安全和精确表示的最小整数,也就是[IEEE-754](https://en.wikipedia.org/wiki/IEEE_floating_point)定义的-(253 - 1)
Number.MIN_SAFE_INTEGER === -Number.MAX_SAFE_INTEGER // true
Number.MIN_SAFE_INTEGER === -9007199254740991 // true
Number.isSafeInteger
新增方法,返回true或false,表示在js可以安全和精确表示的范围内,也就是[IEEE-754](https://en.wikipedia.org/wiki/IEEE_floating_point)定义的-(253 - 1)到(253 - 1),所谓安全就是如果超出这范围,计算的结果就很可能不正确。
Number.isSafeInteger('a') // false
Number.isSafeInteger(null) // false
Number.isSafeInteger(NaN) // false
Number.isSafeInteger(Infinity) // false
Number.isSafeInteger(-Infinity) // false
Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // false
Number.isSafeInteger(Number.MIN_SAFE_INTEGER) // true
Number.isSafeInteger(1) // true
Number.isSafeInteger(1.2) // false
Number.isSafeInteger(Number.MAX_SAFE_INTEGER) // true
Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false
9007199254740993 - 9007199254740995 // -4 但真实结果应该为-2
Number.isNaN
类似es5的isNaN,判断是否NaN,返回true或false,但值为非数字时,跟es5的isNaN有区别,isNaN会先执行一次Number方法
Number.isNaN(123) // false, integers are not NaN
Number.isNaN(Infinity) // false, Infinity is not NaN
Number.isNaN(NaN) // true, NaN is NaN
Number.isNaN('pony'/'foo') // true, 'pony'/'foo' is NaN, NaN is NaN
Number.isNaN('ponyfoo') // false, 'ponyfoo' is not NaN
isNaN('ponyfoo') // true, because Number('ponyfoo') is NaN
Number.isFinite
类似es5的isFinite,判断是否有限数,返回true或false,但值为非数字时,跟es5的isNaN有区别,isFinite会先执行一次Number方法
Number.isFinite(NaN) // false
Number.isFinite(Infinity) // false
Number.isFinite(-Infinity) // false
Number.isFinite(null) // false
Number.isFinite(0) // true
Number.isFinite(3) // true
Number.isFinite('10') // false
Number.isFinite(Math.pow(2,53)+5) // true 大于js的安全整数
isFinite(null) // true, because Number(null) is 0
isFinite('10') // true, because Number('10') is 10
Number.parseInt
跟es5的parseInt完全一样,不再介绍
Number.parseInt === parseInt // true
Number.parseFloat
跟es5的parseFloat完全一样,不再介绍
Number.parseFloat === parseFloat // true
es6基础系列二:Number的更多相关文章
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- 从零开始学 Web 之 ES6(四)ES6基础语法二
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Java基础系列二:Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- ES6基础(二)
一.ES6字符串扩展 字符串模板 在传统的JavaScript语言中,输出模板通常是这样写的. 上面这种写法繁琐不方便,于是ES6中引入了字符串模板解决这个问题. 用反引号(`)标识.他可以当做普通字 ...
- 你所不知道的ASP.NET Core MVC/WebApi基础系列 (二)
转自博客:https://www.cnblogs.com/CreateMyself/p/10604293.html 前言 本节内容,我们来讲讲.NET Core当中的模型绑定系统.模型绑定原理.自定义 ...
- ES6入门系列二(数值的扩展)
ES6 在 Number对象上新增了很多方法 1 . Number.isFinite()判断是否为有限的数字 和全局的isFinite() 方法的区别是 isFinite('1') === tr ...
- es6基础系列五--数组的拓展
Array.from() 用于将两类对象转为真正的数组,类似数组对象和可遍历对象(包括数据结构Set和Map)转化为数组 格式:Array.from(arrayLike[, mapFn[, thisA ...
- es6基础系列四--字符串的拓展
1 for...of 字符串的遍历接口 for(let i of "abc"){ console.log(i); } // a // b // c 2 includes 是否包含某 ...
- es6基础系列三:解构赋值
解构就是ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值(只能用于数组,对象或迭代器).如果解构不成功,则等于undefined,但不能赋值为undefined和null,因为undefi ...
随机推荐
- Lucas,.net Web框架
#LucasLucasLucasWeb框架是基于新的魔法糖思想创建的框架.本框架有两大特点.1.所有框架里最简单易学易配置的.2.所有框架里效率最快的.1.UrlRouter没有使用IOC注入及反射, ...
- jsp的九大内置对象和四个作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request response ...
- input 即时搜索 监听输入值的变化
在 Web 开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理 ...
- 事件日志:无法加载站点/服务的所有 ISAPI 筛选器。因此启动中止。
事件日志:无法加载站点/服务的所有 ISAPI 筛选器.因此启动中止. Service Unavailable解决 故障状态:Internet 信息服务(IIS)管理器 里 应用程序池出现错误 “应用 ...
- AVFoundation自定义拍照
0.AVCapture <AVFoundation/AVFoundation.h> 媒体采集需要的几个对象: 1.AVCaptureDevice: 代表抽象的硬件设备(如前置摄像头,后置 ...
- 我的第一个webapiDemo
最近在面试,总是被问到有没有接触过webapi 或者问webapi和MVC 的区别,今天看了看,原来如此,自己理解感觉webapi和webservice一样像是实现soa 的一种形式,也可以理解为服务 ...
- [设计模式] Iterator - 迭代器模式:由一份奥利奥早餐联想到的设计模式
Iterator - 迭代器模式 目录 前言 回顾 UML 类图 代码分析 抽象的 UML 类图 思考 前言 这是一包奥利奥(数组),里面藏了很多块奥利奥饼干(数组中的元素),我将它们放在一个碟子上慢 ...
- 使用RecyclerView实现的分组列表。
项目介绍: StickyHeaders使用RecyclerView实现的分组列表
- iOS开发RunLoop
最近处于离职状态,时间也多了起来,但是学习还是不能放松,今天总结一下RunLoop,RunLoop属于iOS系统层的东西,还是比较重要的. 一.什么是RunLoop 字面意思看是跑圈,也可以看作运行循 ...
- BZOJ4403 序列统计—Lucas你好
绝对是全网写的最详细的一篇题解 题目:序列统计 代码难度:简单 思维难度:提高+-省选 讲下题面:给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案 ...