ES6入门系列二(数值的扩展)
ES6 在 Number对象上新增了很多方法
1 . Number.isFinite()判断是否为有限的数字
和全局的isFinite() 方法的区别是
isFinite('1') === true ; Number.isFinite('1') === false
全局的isFinite()先调用Number() 方法 把 变量 转化为数字再进行判断, 所以返回 true,
Number.isFinite()只能判断数字, 对于非数字一律返回false
2 , Number.isNaN() 判断是否为NAN,
只有NaN 才返回true, 否则返回false
3 , ES6 把全局的parseInt()和parseFloat() 移植到了Number对象上,但行为保持不变,
是为了逐步减少全局方法, 使语言逐渐模块化
4 , Number.isInterger()判断是否为整数, 注意一点,javascript内部整数和浮点数是同样的存储方法
所以Number.isInteger(2) === Number.isInteger(2.0)
5, Number.EPSILON是一个极小常量, 一般来说, 差值小于这个极小常量的两个数我们就认为是相等的
因为JavaScript浮点数的计算不精确,0.1+ 0.2 = 0.30000000000000004
如果 Math.abs(0.1+ 0.2 - 0.3) < Number.EPSILON 我们就认为 0.1+ 0.2 = 0.3
6 , Number.isSafeInteger()
我们知道JavaScript表示整数的精度范围在-2的53次方到2的53次方之间,
超过这个范围的整数JavaScript就无法精确表示了,比如
Math.pow(2, 53) + 1 === Math.pow(2 ,53) / true
ES6引入了两个数来表示这个范围
Number.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
Number.MIN_SAFE_INTEGER = Math.pow(2, 53) + 1;
判断一个整数是否落在这个区域就可以用 Number.isSafeInteger() ,
它只能传整数进去, 不是整数一律返回false
7 , 基于6 我们知道JavaScript无法准确的表示大于2的53次方的整数,
由此ES6新增了一个bigint的数据类型, 数值后面加n 来区分数字
typeof 1234n === 'bigint'
当计算Math.pow(2, 53) + 1 的时候
9007199254740992 + 1 = 9007199254740992 (不精确)
9007199254740992n + 1n = 9007199254740993n (精确)
在调用toString() 方法返回结果
ES6入门系列二(数值的扩展)的更多相关文章
- Maven入门系列(二)--设置中央仓库的方法
原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...
- mybatis入门系列二之输入与输出参数
mybatis入门系列二之详解输入与输出参数 基础知识 mybatis规定mapp.xml中每一个SQL语句形式上只能有一个@parameterType和一个@resultType 1. 返回 ...
- C语言高速入门系列(二)
C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...
- C# 互操作性入门系列(二):使用平台调用调用Win32 函数
好文章搬用工模式启动ing ..... { 文章中已经包含了原文链接 就不再次粘贴了 言明 改文章是一个系列,但只收录了2篇,原因是 够用了 } --------------------------- ...
- [转]C# 互操作性入门系列(二):使用平台调用调用Win32 函数
传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...
- RabbitMQ 入门系列:8、扩展内容:接收信息时:可否根据RoutingKey过滤监听信息,答案是不能。
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...
- RabbitMQ 入门系列:9、扩展内容:死信队列:真不适合当延时队列。
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...
- RabbitMQ 入门系列:10、扩展内容:延时队列:延时队列插件及其有限的适用场景(系列大结局)。
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...
- ES6 入门系列 - 函数的扩展
1函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log( ...
随机推荐
- inode ls -li 显示索引节点
ls -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --a ...
- ElasticSearch(九)基于version进行乐观锁并发控制
一.基于version进行乐观锁并发控制 1).查看一条document GET /test_version/test_version_type/ { "_index" : &qu ...
- spawn类expect方法详解
本文我们将介绍spawn类的基本方法expect方法,这个方法是用来匹配返回的结果,这个返回的结果是指子程序的返回结果,同时会将匹配的相关信息保存在spawn类的相关属性中. 基本属性包括三个,第一个 ...
- 代码空间项目 -- cookie的基本使用
cookie在日常开发b/s架构时候经常使用,可以在记住用户,方便自动登录,也可以记住用户的偏好并对应推送广告 下面说说开发时候的基本用法: 1.创建cookie//设置cookie,键值对形式Coo ...
- Hadoop安全
kerberos-hadoop配置常见问题汇总 注意事项 常见问题如下(其中前面两点最多): 各目录属主组属性修改. 对于hadoop,需要改为yarn:hadoop/mapred:hdoop/hdf ...
- android RefBase、sp、wp
首先RefBase在android的c++部分是作为一个所有类的基类,其作用跟Java中的Object类似 这个类中存在一个私有成员: weakref_impl* const mRefs;(weakr ...
- java to Json or Json to JavaBean
今天练习,放这里,以后再补充 这里使用的jar包是 net.sf.json.JSONObject package yh.test.t1118; import net.sf.json.JSONArray ...
- HDU3605 Escape —— 二分图多重匹配
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3605 Escape Time Limit: 4000/2000 MS (Java/Others) ...
- Window 64位下的客户机配置PLSQL链接远程Oracle
此文章记录的是艰难探索. 完成如下工作: 服务器A为Windows Serve 2016:安装Oracle. 客户机B为Win7 x64位,安装PLSQLDevelop,链接A上的Oracle. 首先 ...
- 配置maven环境变量并安装jar包到本地仓库
1.下载maven安装包,解压,解压目录如下: 2.配置M2_HOME变量为上一步的路径: 3.配置PATH变量,添加%M2_HOME%\bin; 查看是否配置成功 mvn -v : 4.安装jar ...