ES6学习笔记(九)数值的扩展

百度地图返回5e-324问题解决(获取release版本SHA1) 1.首先在百度地图控制台为应用申请key时会有两个版本的SHA1值,一个为debug版本,一个为release版本。对于debug的获取想必大家都已知道(可以通过AS右方的Gradle按如下操作得到)。那么如何获得release版本的SHA1呢,我网上搜索的教程是在AS的控制台输入keytool命令实现,然而我却遇到了问题,不知道你们是不是。没错,它提示没有这个命令,这就尴尬了。解决办法:keyt... 阅读详情

在ES6中,对于数值的扩展,主要是扩展了进制的表示方法,在Number对象和Math对象上增加了一些常量和方法,还有增加了指数运算符。

二进制和八进制的表示法


ES6提供了二进制和八进制的写法,在ES5中,虽然也有在数字前面加一个0来表示八进制的写法,但在严格模式下会报错,而ES6提供的0b,0o即使在严格模式下也不会报错。

(function (){
    console.log(010);
})()
//8


(function (){
    'use strict'
    console.log(010);
})()
//Octal literals are not allowed in strict mode.


(function (){
    'use strict'
    console.log(0o10);
})()
//8


(function (){
    'use strict'
    console.log(0b10);
})()
//2

使用Number方法可以将二进制和八进制转化为十进制

Number(0b111)//7
Number(0o111)//73

Number的扩展


新增的常量

ES6在Number对象上增加了三个常量,上下限和极小值

Number.EPSILON

表示 1 与大于 1 的最小浮点数之间的差。

对于 64 位浮点数来说,大于 1 的最小浮点数相当于二进制的1.00..001,小数点后面有连续 51 个零。这个值减去 1 之后,就等于 2 的 -52 次方。

Number.EPSILON === Math.pow(2, -52)// true

Number.EPSILON// 2.220446049250313e-16

Number.EPSILON.toFixed(20)// "0.00000000000000022204"

Number.EPSILON表示了JavaScript中的最小精度,误差如果小于该值,就可视为没有误差了。

Number.EPSILON可以用来设置“能够接受的误差范围”。比如,误差范围设为 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2)),即如果两个浮点数的差小于这个值,我们就认为这两个浮点数相等。

5.551115123125783e-17 < Number.EPSILON * Math.pow(2, 2)// true

可以用下面的方法来判断两个数的差是否在自己定义的精度内

function withinErrorMargin (num1, num2,accuracy) {//num1和num2为计算的数,accuracy为设置的精度

  return Math.abs(num1 - num2) < Number.EPSILON * Math.pow(2, 52-accuracy);

}//如果在自己设定的精度内,则返回true,否则返回false

Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER

JavaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。而Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量用来表示这个范围的上下限。

Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1// true

Number.MAX_SAFE_INTEGER === 9007199254740991// true

Number.MIN_SAFE_INTEGER === -Number.MAX_SAFE_INTEGER// true

Number.MIN_SAFE_INTEGER === -9007199254740991// true

对数值的判断方法

在ES6的判断数值的下列方法中,如果传入的参数是非数值,会返回一个false

Number.isFinite()

该方法用于判断一个数是否为有限的,即不是Infinite,NaN也会返回false。

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false

Number.isNaN()

该方法用于判断一个数是否是NaN

Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
Number.isNaN(Infinity) //false

对于上面的两个方法,在ES6中有对应的全局方法isFinite和isNaN,不同的是,全局方法的调用会先将参数传入Number方法中再判断其是否为有限和是否为NaN,所以对有些字符串会返回true

isFinite('1')//true

Number.isFinite('1')//false

isNaN('NaN')//true

Number.isNaN('NaN')//false

Number.isInteger

Number.isInteger()用来判断一个数值是否为整数。

Number.isInteger(25) // true

Number.isInteger(25.1) // false

然而,这个方法在传入某些带小数点的数值时也会返回true

1.小数点后面的值为0(实际上还是整数)

2.浮点数的精度小数点后16个十进制位,转成二进制位超过了53个二进制位,而JavaScript数值精度最多可以达到 53 个二进制位(1 个隐藏位与 52 个有效位),如果超过这个限度,后面的部分就会被抛弃,这个时候isInteger会误判

Number.isInteger(25) // true

Number.isInteger(25.0) // true

Number.isInteger(3.0000000000000002) // true

还有一种情况,如果传入的数值参数的绝对值小于Number.MIN_VALUE(Number.MIN_VALUE=5E-324,为JavaScript能够分辨的最小值,小于该值会被自动转为0)

5e-324===0// false

5e-325===0// true

Number.isInteger(5E-324) // false

Number.isInteger(5E-325) // true

Number.isSafeInteger

IsSafeInteger方法用来判断一个整数是否在在-2^53到2^53之间(不含两个端点)即在Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量之间。

Math.pow(2, 53) // 9007199254740992

9007199254740992  // 9007199254740992

9007199254740993  // 9007199254740992



Math.pow(2, 53) === Math.pow(2, 53) + 1

要注意的是,由于超出这个范围的运算是不会返回正确的结果的,所以如果要验证一个式子最后返回的是不是在这个上下限之间,不仅要验证结果,还有验证参与运算的数,否则可能会是计算结果出错才导致最后返回的结果为true。

 

全局方法的移植

在ES6中,将全局中的parseInt和parseFloat方法移植到Number对象上,行为完全保持不变,这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。

Number.parseInt === parseInt // true

Number.parseFloat === parseFloat // true

Math的扩展


ES6中在Math 对象上新增了 17 个与数学相关的方法。主要是解决了一些精度计算上的问题,增加一些超出精度的数的计算方法,判断数值的方法,处理浮点数的方法,四个对数方法和六个双曲线方法。所有这些方法都是静态方法,只能在 Math 对象上调用,其中传入的参数如果不是数值的话,会调用Number方法后将返回的值作为参数传入,下面的参数默认为已经用Number方法处理过的参数。

Math.trunc

该方法用于去除一个数的小数部分,返回整数部分

Math.trunc(4.1) // 4

Math.trunc(4.9) // 4

Math.trunc(-4.1) // -4

Math.trunc(-4.9) // -4

Math.trunc(-0.1234) // -0

Math.trunc('123.456') // 123

Math.trunc(true) //1

Math.trunc(false) // 0

Math.trunc(null) // 0

Math.trunc(NaN); // NaN

Math.trunc('foo'); // NaN

Math.trunc(); // NaN

Math.trunc(undefined) // NaN

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.trunc = Math.trunc || function(x) {
    return x < 0 ? Math.ceil(x) : Math.floor(x);
};

这个方法对负数向上取整,对整数向下取整,最后返回的即为一个数的整数部分

Math.sign

Math.sign方法用来判断一个数到底是正数、负数、还是零

  • 正数  :返回+1;
  • 负数  :返回-1;
  • 0     :返回0;
  • -0    :返回-0;
  • 其他值:返回NaN。
Math.sign(-5) // -1

Math.sign(5) // +1

Math.sign(0) // +0

Math.sign(-0) // -0

Math.sign(NaN) // NaN

Math.sign('')  // 0

Math.sign(true)  // +1

Math.sign(false)  // 0

Math.sign(null)  // 0

Math.sign('9')  // +1

Math.sign('foo')  // NaN

Math.sign()  // NaN

Math.sign(undefined)  // NaN

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.sign = Math.sign || function(x) {
    x = +x; // convert to a number  
    if (x === 0 || isNaN(x))
        return x;
    return x > 0 ? 1 : -1;
};

这里的x=+x将传入的值变为数值,若传入的为非数值且无法转化为数值,就会返回NaN,而因为0===-0返回true,所以x===0是x为0或为-0都能成立,最后用三目运算符判断传入的数是正数还是负数。

Math.cbrt

该方法用于计算一个数的立方根,Math.pow虽然也能计算立方根,但只能计算非负数的立方根,若传入负数会返回NaN

Math.cbrt(27)//3

Math.cbrt(-27)//-3

Math.cbrt('27') // 3

Math.cbrt('hello') // NaN

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.cbrt = Math.cbrt || function(x) {
    var y = Math.pow(Math.abs(x), 1/3);
    return x < 0 ? -y : y;
};

该方法其实也就是调用了Math.pow来计算一个数的立方根,但由于Math.pow只能计算非负数的立方根,所以就先将绝对值作为参数传入,在返回时通过判断其原来的正负来返回数值。

Math.clz32

该方法将参数转化为32位无符号整数的形式,返回该数中有多少个前导0

Math.clz32(0) // 32

Math.clz32(1) // 31

Math.clz32(1000) // 22

Math.clz32(0b01000000000000000000000000000000) // 1

Math.clz32(0b00100000000000000000000000000000) // 2

如果传入的数值大于2的32次方,就只计后面的32位有多少个前导0

Math.clz32(Math.pow(2,32))//32

Math.clz32(Math.pow(2,32)+1)//31

Math.pow(2,32)最高位就是1,本该返回0,但是只算后面的32位,后32位都为0,所以返回32,而加一后最低位也为1,所以返回31。

对于小数,Math.clz32方法只考虑整数部分。

Math.clz32(3.2) // 30

Math.clz32(3.9) // 30

左移运算符(<<)与Math.clz32方法直接相关。

Math.clz32(0) // 32

Math.clz32(1) // 31

Math.clz32(1 << 1) // 30

Math.clz32(1 << 2) // 29

Math.clz32(1 << 29) // 2

Math.imul

Math.imul方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。一般情况下调用该方法和两个数直接相乘是一样的,但如果精度超过32位,直接相乘不能得到正确结果,对于大数相乘的结果,低位的数值往往会不精确。

Math.imul(2, 4)   // 8

Math.imul(-1, 8)  // -8

Math.imul(-2, -2) // 4

0x7fffffff * 0x7fffffff //4611686014132420600

Math.imul(0x7fffffff, 0x7fffffff) // 1

((Math.pow(2,32)-1)*(Math.pow(2,32)-2))|0//0

Math.imul(Math.pow(2,32)-1,Math.pow(2,32)-2)//2

我们知道0x7fffffff的最后一位是1,所以两个相乘最后一位也应该是1,但结果却为4611686014132420600,最后一位是0,明显结果是错误的,而使用Math.imul会将超过32位的数抛弃,而事实上两个0x7fffffff相乘结果刚好位2的64次方-2的33次方+1,所以前面两个数超过32位被抛弃了,只留下后面的1

Math.fround

Math.fround方法返回一个数的32位单精度浮点数形式。

对于32位单精度格式来说,数值精度是24个二进制位(1 位隐藏位与 23 位有效位),所以对于 -224 至 224 之间的整数(不含两个端点),返回结果与参数本身一致。

Math.fround(0)   // 0

Math.fround(1)   // 1

Math.fround(2 ** 24 - 1)   // 16777215

如果参数的绝对值大于 224,返回的结果便开始丢失精度。

Math.fround(2 ** 24)       // 16777216

Math.fround(2 ** 24 + 1)   // 16777216

对于 NaN 和 Infinity,此方法返回原值。对于其它类型的非数值,Math.fround 方法会先将其转为数值,再返回单精度浮点数。

Math.fround(NaN)      // NaN

Math.fround(Infinity) // Infinity

Math.hypot

该方法用来计算所有参数平方和的平方根

Math.hypot(3, 4);        // 5

Math.hypot(3, 4, 5);     // 7.0710678118654755

Math.hypot();            // 0

Math.hypot(NaN);         // NaN

Math.hypot(3, 4, 'foo'); // NaN

Math.hypot(-3);          // 3

对数方法

1.Math.expm1

Math.expm1(x)返回 ex - 1,即Math.exp(x) - 1。

Math.expm1(-1) // -0.6321205588285577

Math.expm1(0)  // 0

Math.expm1(1)  // 1.718281828459045

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.expm1 = Math.expm1 || function(x) {
  return Math.exp(x) - 1;
};

2.Math.log1p

Math.log1p(x)方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。

Math.log1p(1)  // 0.6931471805599453

Math.log1p(0)  // 0

Math.log1p(-1) // -Infinity

Math.log1p(-2) // NaN

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.log1p = Math.log1p || function(x) {
  return Math.log(1 + x);
};

3.Math.log10()

Math.log10(x)返回以 10 为底的x的对数。如果x小于 0,则返回 NaN。

Math.log10(2)      // 0.3010299956639812

Math.log10(1)      // 0

Math.log10(0)      // -Infinity

Math.log10(-2)     // NaN

Math.log10(100000) // 5

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.log10 = Math.log10 || function(x) {

  return Math.log(x) / Math.LN10;
};

4.Math.log2()

Math.log2(x)返回以 2 为底的x的对数。如果x小于 0,则返回 NaN。

Math.log2(3)       // 1.584962500721156

Math.log2(2)       // 1

Math.log2(1)       // 0

Math.log2(0)       // -Infinity

Math.log2(-2)      // NaN

Math.log2(1024)    // 10

Math.log2(1 << 29) // 29

对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.log2 = Math.log2 || function(x) {
  return Math.log(x) / Math.LN2;
};

双曲线方法

Math.sinh(x) 返回x的双曲正弦(hyperbolic sine)

Math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)

Math.tanh(x) 返回x的双曲正切(hyperbolic tangent)

Math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)

Math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)

Math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

指数运算符


在之前我们要进行指数运算,一般是使用Math.pow来计算的,ES6提供了更为方便简洁的运算符。

指数运算符(**)可以直接进行指数运算,a**b即为a的b次方

2**2//4

2**3//8

要注意的是,指数运算符是右结合的,即多个指数运算符同时计算时,是从右到左算的

2**3**2//512  相当于2**(3**2)

同时指数运算符可以和+-*/这些运算符一样,在后面加个等于号以表示左边的值等于左边的值与右边的值使用该运算符计算得到的结果。

let a=2;
a**=2
console.log(a);//4

参考自阮一峰的《ECMAScript6入门》


ES6学习笔记目录

 

ES6学习笔记(一)let和const

ES6学习笔记(二)参数的默认值和rest参数

ES6学习笔记(三)箭头函数简化数组函数的使用

ES6学习笔记(四)解构赋值

ES6学习笔记(五)Set结构和Map结构

ES6学习笔记(六)Iterator接口

ES6学习笔记(七)数组的扩展

ES6学习笔记(八)字符串的扩展

ES6学习笔记(九)数值的扩展

ES6学习笔记(十)对象的扩展

ES6学习笔记(十一)Symbol

ES6学习笔记(十二)Proxy代理

ES6学习笔记(十三)Reflect对象

ES6学习笔记(十四)Promise对象

ES6学习笔记(十五)Generator函数

ES6学习笔记(十六)asnyc函数

ES6学习笔记(十七)类class

ES6学习笔记(十八)尾调用优化

ES6学习笔记(十九)正则的扩展

ES6学习笔记(二十)ES Module的语法

字符串与数值扩展【ES6】 字符串扩展:includes,(startsWith,endsWith),repeat 数值扩展: Number.isFinite,Number.isNaN,Number.isInteger,Number.EPSLON,Math.trunc,Math.sign 阅读详情

相关推荐

百度定位,坐标获取

获取百度坐标,定位 百度坐标拾取。获取百度坐标,定位 百度坐标拾取

关于百度地图定位出现5e-324的解决办法

    最近做APP用到了百度地图的API,真机测试是正常的,打包成为APP就会出现经纬度返回5e-324,这是密钥的问题,包名和生成的密钥一定要对应起来。

fhycll123的博客 7151

ESP32-P4开发板实战:从零配置VSCode环境到点亮MIPI-DSI屏幕(避坑指南)

本文详细介绍了ESP32-P4开发板在VSCode环境下的配置流程,包括SDK安装、idf_component.yml依赖管理,以及MIPI-DSI屏幕驱动的实现方法。通过实战指南帮助开发者避开常见配置陷阱,快速完成从环境搭建到屏幕点亮的全流程,适用于物联网和嵌入式开发场景。

pp12345的博客 742

JavaScript基础

JavaScript基础 HTML和CSS 京东 网页、网站和应用程序 网页:单独的一个页面 网站:一些列相关的页面组成到一起 应用程序:可以和用户产生交互,并实现某种功能。 JavaScript介绍 JavaScript是什么 HTML CSS JavaScript 编程语言 流程控制 Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将...

阳神 568

开启虚拟人物互动新时代:探索相芯Avatar SDK驱动功能(Android)

相芯SDK提供了男孩和女孩Avatar驱动模型,这些模型具备半身驱动和全身驱动的功能,使得虚拟角色能够根据用户的面部表情和动作实时模仿和响应。半身驱动功能: 相芯SDK的男孩和女孩Avatar驱动模型具备上身驱动功能,即能够通过用户的面部表情和动作来驱动虚拟角色的上半身行为。这意味着用户的面部表情、头部转动和上半身姿态等动作可以直接映射到虚拟角色上,使得虚拟角色能够栩栩如生地模仿用户的动作。例如,用户微笑时,虚拟角色会展现出笑容;用户转动头部时,虚拟角色也会相应地转动头部。

Faceunity2023的博客 631

端侧部署与优化:让 AI 真正走进现实生活的关键技术

AI 的开发流程分为 “训练” 与 “推理” 两大阶段。在训练阶段,科研人员依托云端海量数据和高性能 GPU 算力,构建出精度优异的 AI 模型 —— 比如能识别 1000 种物体的图像分类模型、能理解人类语言的自然语言处理模型。但这些在云端 “战绩斐然” 的模型,若直接应用到现实场景中,却会面临三大 “落地困境”。从云端到端侧,从模型压缩到硬件适配,端侧部署与优化技术解决了 AI 落地的核心难题,让 AI 不再是实验室里的 “高精尖技术”,而是融入日常生活的 “实用工具”。

m0_63477749的博客 1052

简单数据类型

简单数据类型 Number、String、Boolean、Undefined、Null Number类型 数值字面量:数值的固定值的表示法 110 1024 60.5 浮点数 浮点数的精度问题 浮点数 var n = 5e-324; // 科学计数法 5乘以10的-324次方 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确...

HXGNMSL的博客 806

手把手教你搞定JBI投稿:从Statement of Significance到Declaration Statement的保姆级避坑指南

本文提供了一份详细的JBI投稿指南,重点解析Statement of Significance和Declaration of Interests的撰写技巧,帮助研究者避开常见格式陷阱。通过实战案例和检查清单,确保投稿符合JBI的学术严谨性和临床转化价值要求,提升稿件通过率。

weixin_29278805的博客 622

JavaScript学习

语言的发展: 纸带机:机器语言 汇编语言:符号语言 现代语言:高级语言 JavaScript诞生于1995年,它的出现主要是用于处理网页中的前端验证。 所谓的前端验证,就是指检查用户输入的内容是否符合一定的规则。 比如:用户的长度,密码的长度,邮箱的格式等。 实现: ECMAScript是一个标准,而这个标准需要各个厂商去实现。 JS的特点: 1、解释型语言(计算机只认识二进制) 2、类似于C和Java的语法结构 3、动态语言 4、基于原型的面向对象alert : 是用来告诉浏览器在窗口弹出警号框。 d

lzm0312286771_的博客 470

本地部署大模型 vs 网页版大模型区别

fill:#333;color:#333;color:#333;fill:none;本地服务器/工作站硬件资源私有化部署GPU集群高速存储模型文件训练框架推理引擎。

Ds-Rag的博 1712

工业级隔离CAN FD收发器ISO1042设计实战:从原理到EMC防护

在工业自动化与伺服驱动系统中,CAN总线是实现设备间可靠通信的关键技术。其核心原理是通过差分信号传输和仲裁机制,在复杂电磁环境中实现多节点实时数据交换。这项技术的核心价值在于为高噪声、高干扰的工业现场提供了稳定、确定性的通信基础,是构建分布式控制系统不可或缺的环节。其典型应用场景包括新能源汽车电池管理、工业机器人伺服控制以及光伏逆变器集群通信等。本文将聚焦于如何通过高性能隔离CAN FD收发器(如TI的ISO1042)来应对地电位差、浪涌和高压串扰等现场挑战,深入解析其集成的电气隔离、±70V总线故障保护和

weixin_26834815的博客 388

ES6之数值的扩展

TOCNaN/TOC。

BradenHan的专栏 2369

2022年全国职业院校技能大赛高职组大数据技术与应用赛项赛卷⑩—解析答案

工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。 为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 582

ES6,新增语法整理之数值的扩展

确切地说,JS 中的Number类型只能安全地表示-9007199254740991 (-(2^53-1)) 和9007199254740991(2^53-1)之间的整数,任何超出此范围的整数值都可能失去精度。它们与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效。ES2020 引入了一种新的数据类型 BigInt(大整数),BigInt 只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。

m0_37749760的博客 1760

全功能爬虫框架:Botasaurus 的详细使用(现代化、反检测、高并发的智能爬虫框架)

Botasaurus是一个基于 Python 的全栈式智能数据采集框架。它深度融合了以下关键技术: 无头浏览器自动化(Headless Browser Automation):基于 Playwright 或 Puppeteer,支持 Chromium、Firefox、WebKit; 高级反检测引擎(Anti-Detection Engine):自动绕过 WebDriver、Canvas、AudioContext 等 50+ 种指纹检测; 声明式任务模型(Declarative Task Model):用装

数据知道的博客 4371

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ES6数值的扩展

ES6 数值的扩展 二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 从ES5开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6进一步明确,要使用前缀0o表示。 0b111110111 === 503 // true 0o767 === 503 // true 如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。 Number('0b111') // 7 Number('0o10') // 8 Number.isF

cake_eat的博客 1079

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

全栈之路——前端(一):ES6之数值、运算符的扩展

JS中所有数字都是64位双精度浮点数,进而导致数值的精度只能精确到53个二进制位,及16个十进制位,大于这个范围的整数无法精确表示,大于或等于2的1024次方的数也会无法表示,返回Infinity。表示JS的最小精度,相当于2的-52次方,主要是为了给浮点数计算设置一个误差范围,比如,误差范围设为 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2)),即如果两个浮点数的差小于这个值,我们就认为这两个浮点数相等。Math.log2(x)返回以 2 为底的x的对数。

whu_three的博客 1110

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ES6基础-ES6的扩展

进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字...

程序员哆啦A梦,蓝胖子 5069

ES6新增数值的扩展

Number.isFinite(), Number.isNaN() ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法 Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity; Number.isFinite(12) // true Number.isFinite(0.8) // true...

qq_38718629的博客 1066

es6 数值的扩展

数值的扩展Number.isNaN()Number.isFinite()Number.parseInt()Number.parseFloat()Number.isInteger()Number.EPSILONMath...指数运算符`(**)` Number.isNaN() 传统的isNaN()函数会把非数值的参数转化成数值再进行判断 isNaN('str'); // true // ...

Hassan的小博客! 1141

ES6 数值的扩展、数组的扩展

ES6 数值的扩展、数组的扩展 一、数值的扩展 1,二进制和八进制的表示 ES6提供了二进制和八进制数值的新的写法 二进制前缀:0b、0B 八进制前缀:0o、0O 2,Number.isFinite() 和 Number.isNaN() 方法 Number.isFinite() 用来检验一个数值是否非无穷(infinite)。 例: //infinite 极大的 无法测量的 无穷 console.log(Number.isFinite(5)); //true

kangyi158的博客 267

【前端】ES6:数值扩展、对象扩展、函数扩展

但是 fun 因为是箭头函数,所以 this 不指向 obj,而是指向 fun 的外层,就是 window。按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。按照我们之前的 this 指向来判断,两个都应该指向 obj。使用自己想要的参数替换原数组内容,但是会改变原来的数组。箭头函数是 ES6 里面一个简写函数的语法方式。将一组值转化为数组,即新建数组。方法判断两个值是否是相同的值。将类数组对象转换为真正数组。

weixin_45980065的博客 1189

ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt

ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt 文章目录ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt1. 二进制和八进制表示法2. 数值分隔符3. Number.isFinite(), Number.isNaN()4. Number.parseInt(), Number.parseFloat()5. Number.isInteger()

qq_43456781的博客 1250

ES6 class-数值扩展-方法扩展

ES6新特性

weixin_41909678的博客 463

ES6学习总结之数值的扩展

ES6学习总结之数值的扩展1. 二进制和八进制2. Number.isFinite()和Number.isNaN()3. Number.parseInt()和Number.parseFloat()4. Number.isInteger()5. Number.EPSILON6. 安全整数和Number.isSafeInteger()7. Math对象的扩展8. 指数运算符9. BigInt数据类型BigInt对象转换规则 1. 二进制和八进制 0b开头的数值表示二进制数; 0o开头的数值表示八进制数; 可以用

weixin_43737327的博客 368

ES6语法学习笔记(5)-数值扩展

ES6语法学习笔记(4)-数值扩展 { // 二进制 console.log('B',0B111110111);//B 503 // 八进制 console.log(0o767);//503 } 判断数字是否有限 { console.log('15',Number.isFinite(15));//15 tNaN falserue// consol...

qq_41537989的博客 181
上一篇: ES6学习笔记(八)字符串的扩展
下一篇: ES6学习笔记(十)对象的扩展
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值