ES6学习之数值

简介: ES6学习之数值

数值的表示

二进制表示法新写法:前缀0b或0B

console.log(0b11 === 3); // true
console.log(0B11 === 3); // true

八进制表示法新写法:前缀0o 或 0O

console.log(0o11 === 9); // true
console.log(0O11 === 9); // true

常量

Number.EPSILON,它的值接近于2的-52次方

测试数值是否在误差范围内

0.1 + 0.2 === 0.3; // false
// 在误差范围内即视为相等
console.log(Math.abs(0.1 - 0.3 + 0.2) < Number.EPSILON); // true

最大最小安全整数

安全整数

安全整数表示在JavaScript中能够精确表示的整数,安全整数的范围在2的-53次方到2的53次方之间(不包括两个端点),超过这个范围的整数无法精确表示。

最大安全整数:安全整数范围的上限,即2的53次方减1.

最小安全整数:安全整数范围的下限,即2的53次方减1的负数.

方法

Number对象新方法:用于检查一个数值是否为有限的(finite),即不是Infinity

Number.isFinite()

Number.isFinite 没有隐式的 Number() 类型转换,所有非数值都返回 false。

在全局的 isNaN() 中,以下皆返回 true,因为在判断前会将非数值向数值转换

而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 false

Number.isNaN(“NaN”); // false

Number.isNaN(undefined); // false

Number.isNaN({}); // false

Number.isNaN(“true”); // false

从全局移植到Number对象的方法

逐步减少全局方法,用于全局变量的模块化。

Number.parseInt()

用于将给定字符串转化为指定进制的整数。

与全局的parseInt()函数是同一个函数。

Number.parseInt === parseInt() //true

Number.parseFloat()

用于将给定字符串转化为浮点数。

如果无法被解析成浮点数,则返回NaN。

与全局的 parseFloat() 方法是同一个方法。

Number.isInteger()

用于判断给定的参数是否为整数。

注意: JavaScript 内部,整数和浮点数采用的是同样的存储方法,因此1与1.0被视为相同的值。

Number.isSafeInteger()

用于判断数值**(整数)**是否在安全范围内。

Math对象的扩展

ES6在Math对象上新增了17个数学相关的静态方法,这些方法只能在Math中调用。

普通计算

Math.cbrt()

用于计算一个数的立方根。会对非数值进行转换。非数值且无法转换为数值时返回NaN

Math.imul()

两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。

大多数情况下,结果与 a * b 相同 。用于正确返回大数乘法结果中的低位数值。

Math.hypot()

用于计算所有参数的平方和的平方根。

1)非数值会先被转换为数值后进行计算。2)空值会被转换为 0。3)参数为 Infinity 或 -Infinity 返回 Infinity。4)参数中存在无法转换为数值的参数时返回 NaN

Math.hypot([]);         // 0
Math.hypot({});         // NaN
Math.clz32()

用于返回数字的32 位无符号整数形式的前导0的个数。

当参数为小数时,只考虑整数部分。对于空值或非数值,会转化为数值再进行计算。

数字处理

Math.trunc()

用于返回数字的整数部分。

整数部分为 0 时也会判断符号。Math.trunc 会将非数值转为数值再进行处理。空值或无法转化为数值时时返回 NaN。

Math.fround()

用于获取数字的32位单精度浮点数形式。

判断

Math.sign()

判断数字的符号(正、负、0)。

参数为 0 时,不同符号的返回不同。判断前会对非数值进行转换。参数为非数值(无法转换为数值)时返回 NaN。

对数方法

Math.expm1()

用于计算 e 的 x 次方减 1 的结果,即 Math.exp(x) - 1 。

判断前会对非数值进行转换。参数为非数值(无法转换为数值)时返回 NaN。

Math.log1p(x)

用于计算1 + x 的自然对数,即 Math.log(1 + x) 。

参数小于 -1 时返回 NaN。

Math.log10(x)

用于计算以 10 为底的 x 的对数。

Math.log2(x)

用于计算 2 为底的 x 的对数。

双曲函数方法

  • Math.sinh(x): 用于计算双曲正弦。
  • Math.cosh(x): 用于计算双曲余弦。
  • Math.tanh(x): 用于计算双曲正切。
  • Math.asinh(x): 用于计算反双曲正弦。
  • Math.acosh(x): 用于计算反双曲余弦。
  • Math.atanh(x): 用于计算反双曲正切。

指数运算符 **

1 ** 2; // 1
// 右结合,从右至左计算
2 ** 2 ** 3; // 256
// **=
let exam = 2;
exam **= 2; // 4
相关文章
|
2月前
ES6扩展运算符和剩余参数运算符
该文章讲解了ES6中扩展运算符和剩余参数运算符的用法,包括展开数组、浅拷贝、将伪数组转换为真数组,以及如何将函数调用时的参数收集到一个数组中。
31 3
|
3月前
|
JavaScript 前端开发 网络架构
ES6新特性: 默认参数及扩展运算符和剩余参数
ES6新特性: 默认参数及扩展运算符和剩余参数
|
6月前
|
JavaScript 前端开发 API
ES6学习笔记--字符串与数值的拓展
ES6学习笔记--字符串与数值的拓展
|
6月前
|
索引
ES6学习之数组
ES6学习之数组
|
6月前
|
JavaScript 前端开发 索引
ES6学习之字符串
ES6学习之字符串
|
JavaScript 前端开发 安全
ES6(数值的扩展)
ES6(数值的扩展)
65 0
|
12月前
ES6中数值扩展
ES6中数值扩展
38 0
ES6: 字符串与数值拓展
ES6: 字符串与数值拓展
45 0
|
JavaScript
es6数据类型Symbol以及es6操作数组常用的方法
es6数据类型Symbol以及es6操作数组常用的方法
85 0
【ES6】数值相关拓展
【ES6】数值相关拓展
70 0