ES6学习(一):数值的扩展
chapter06 数值的扩展
6.1 二进制和八进制
二进制
前缀 0b 或者 0B
八进制
前缀 0o 或者 0O
6.2 Number.isFinite() Number.isNaN()
原先这两个方法是定义在window上的,调用的时候会先将参数转为Number类型再进行判断,而新的方法只会对数值有效,非数值的话全部返回false。
6.3 Number.parseInt() Number.parseFloat()
这两个方法被移植到了Number对象之上,是为了减少全局性方法,使得语言逐步模块化。
6.4 Number.isInteger()
需要注意的是JS内部整数的存储方法同浮点数相同,所以3和3.0被视为同一个数。
6.5 Number.EPSILON
一个极小的浮点常量,当误差项小于这个常量的时候,可以认为计算是精确地。
6.6 安全整数和Number.isSafeInteger()
JS可以准确表示的整数范围是( -pow(2, 53), pow(2, 53) )。不包括两个端点。
引入的常量:
Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER
Number.isSafeInteger()判断一个数字是否是安全整数
需要注意:在进行运算的时候,要对每一个参与运算的数进行安全性检查。
6.7 Math对象的静态方法
6.7.1 Math.trunc()
remove the decimal part of a float number and return the integer part.
A string will be parsed before processsed.
6.7.2 Math.sign()
判断一个数到底是正数、负数还是零
参数为正数,返回+1
参数为负数,返回-1
参数为0,返回0
参数为-0,返回-0
其他返回NaN
6.7.3 Math.cbrt()
return the cubic root of a number
a string will be parsed before process.
6.7.4 Math.clz32()
返回一个数用32位二进制表示时有多少个前导零(最多32个)。
对于小数,该方法仅考虑正数部分。
对于字符串,会先转为数字再运算。
6.7.5 Math.imul()
返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的整数
之所以引入这样一个方法是因为JS的精度限制,超过2的53此房之后的数字无法精确地表示,所以大数乘法的低位不准确,这个方法可以返回正确的低位值。
6.7.6 Math.fround()
返回一个数的单精度浮点数形式。
整数:没有任何不同
小数:返回最接近的这个小数的单精度浮点数
6.7.7 Math.hypot()
返回所有参数的平方和的平方根
6.8 Math.signbit()
返回一个数在IEEE 754标准下表示时符号位(第一位)的正负值。(0表示正数,1表示负数)
如果符号位为1,返回true。
+0 / false
-0 / true
6.9 指数运算符 **
抄python的
与Math.pow()的实现并不相同,对于特别大的运算结果会有轻微的差异
6.10 Integer
JS 所有的数字均保存为64位浮点数,这决定了正数的精确程度只能到53个二进制位。超过了这个范围,都是无法精确表示的。
Integer 只用来表示正数,没有位数的限制。
表示的时候后面都需要加上后缀n。
Integer不能参与任何可能发生类型转换的运算(因为他是没有表数限制的) 例如:
==
与Number类型的数值运算
>>>位运算符,因为没有最高位,这种运算是没有意义的
+ 因为总是返回一个Number类型的数值
===是可以进行的,因为这是一个全等运算
ES6学习(一):数值的扩展的更多相关文章
- JavaScript学习笔记--ES6学习(五) 数值的扩展
ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...
- ES6中对数值的扩展
上一节和大家学习了字符串的扩展,这一节轮到了数值,我们一起来学习数值的扩展. 剧透一下,这一节并不会很烧脑,都是介绍类的知识讲解,理解性的东西不多,初学者们也可以愉快地看完. 传统的写法 在介绍数值的 ...
- ES6学习之数值扩展
二进制和八进制表示法(二进制用前缀0b(或0B)表示,八进制用前缀0o(或0O)表示) Number('0b111') Number('0o10') Number.isFinite()(判断一个值是否 ...
- JavaScript学习笔记--ES6学习(四) 字符串的扩展
ES6对字符串进行了一些扩展,主要表现在对Unicode 大于\uFFFF的字符的处理上. 1. ES6中字符的Unicode表示方法 在ES5中,字符串的Unicode表示方法: \uxxxx . ...
- js-ES6学习笔记-数值的扩展
1.ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 2.如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法. 3.ES6在Number对象 ...
- ES6学习笔记(二)——字符串扩展
相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...
- ES6学习历程(字符串的扩展)
字符串的扩展 在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新 ...
- ES6 学习6 数组的扩展
本章学习要点: 扩展运算符 Array.from() Array.of() 数组实例的 copyWithin() 数组实例的 find() 和 findIndex() 数组实例的 fill() 数组实 ...
- ES6-11学习笔记--数值的扩展
二进制 0B 八进制 0O Number.isFinite() , Number.isNaN() Number.parseInt() , Number.parseFloat() Number ...
- ES6学习5 字符串的扩展
1.ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历. for (let codePoint of 'foo') { console.log(codePoint) } // ...
随机推荐
- [题解](优先队列广搜)POJ_3635_Full Tank
用二元组$(city,fuel)$即可记录所有状态,以当前花费为关键字优先队列,开数组记录直接做即可 有一个点在于每次不用枚举所有的加油数量,只需要加一即可,因为如果在加一升更优的话又会扩展出加更多油 ...
- Codeforces 1161C(博弈)
自己的一点想法 举几个例子后发现是谁先手痒痒把某一堆掏空了那他就GG了,因此要尽量让对方不得不掏空某堆. 用最简单的举例后发现:1 1 1 1 1 1,扔给谁谁完蛋:1 1 1 1 1 2,一样的,肯 ...
- mycat1.6.5分片(字符串拆分hash)
https://blog.csdn.net/webnum/article/details/78313525 分片规则:字符串拆分hash 一.conf/schema.xml文件 <?xm ...
- 032 Longest Valid Parentheses 最长有效括号
给一个只包含 '(' 和 ')' 的字符串,找出最长的有效(正确关闭)括号子串的长度.对于 "(()",最长有效括号子串为 "()" ,它的长度是 2.另一个例 ...
- ZOJ 5638——Prime Query——————【线段树区间更新,区间查询,单点更新】
Prime Query Time Limit: 1 Second Memory Limit: 196608 KB You are given a simple task. Given a s ...
- MVC学习6 学习使用Code First Migrations功能 把Model的更新同步到DB中
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-th ...
- 11个炫酷的 Linux 终端命令
我已经用了十年的Linux了,通过今天这篇文章我将向大家展示一系列的命令.工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我. 1.命令行日常系快捷键 如下的快捷方式非常有用,能够 ...
- 虚拟机安装CentOS7 Minimal、jdk和hadoop
虚拟机安装CentOS7 Minimal.jdk和hadoop Table of Contents 1. 安装版本 2. PD安装 3. vim安装和配置 4. 主机名变为bogon的解决办法 5. ...
- vue中background-image图片路径问题
按照以往在css文件中写background:url('图片路径'),完成后加载竟然显示出错,起初以为路径不对,检查了几遍,仍然没有问题.最后百度找答案,发现不少同行都遇到过这种问题,遂记录下自己所采 ...
- 部署webservice到远程服务器
在本地编写好webservice后并在本机验证正确后,在本地发布后,直接将发布时设置的文件夹复制到远程服务器上,在远程服务器的IIS上默认网站->新建虚拟目录->设置别名->物理路径 ...