千家信息网

ES6数值怎么表示

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要介绍了ES6数值怎么表示的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6数值怎么表示文章都会有所收获,下面我们一起来看看吧。ES6, 全称 ECMAScr
千家信息网最后更新 2025年11月15日ES6数值怎么表示

这篇文章主要介绍了ES6数值怎么表示的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6数值怎么表示文章都会有所收获,下面我们一起来看看吧。

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。

数值的表示

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

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

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

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

常量

Number.EPSILON

Number.EPSILON 属性表示 1 与大于 1 的最小浮点数之间的差。

它的值接近于 2.2204460492503130808472633361816E-16,或者 2-52。

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

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

属性特性

writable:falseenumerable:falseconfigurable:false

最大/最小安全整数

安全整数

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

最大安全整数

安全整数范围的上限,即 2 的 53 次方减 1 。

Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // trueNumber.MAX_SAFE_INTEGER === Number.MAX_SAFE_INTEGER + 1;     // falseNumber.MAX_SAFE_INTEGER - 1 === Number.MAX_SAFE_INTEGER - 2; // false

最小安全整数

安全整数范围的下限,即 2 的 53 次方减 1 的负数。

Number.MIN_SAFE_INTEGER + 1 === Number.MIN_SAFE_INTEGER + 2; // falseNumber.MIN_SAFE_INTEGER === Number.MIN_SAFE_INTEGER - 1;     // falseNumber.MIN_SAFE_INTEGER - 1 === Number.MIN_SAFE_INTEGER - 2; // true

属性特性

writable:falseenumerable:falseconfigurable:false

方法

Number 对象新方法

Number.isFinite()

用于检查一个数值是否为有限的( finite ),即不是 Infinity

console.log( Number.isFinite(1));   // trueconsole.log( Number.isFinite(0.1)); // true // NaN 不是有限的console.log( Number.isFinite(NaN)); // false console.log( Number.isFinite(Infinity));  // falseconsole.log( Number.isFinite(-Infinity)); // false // Number.isFinate 没有隐式的 Number() 类型转换,所有非数值都返回 falseconsole.log( Number.isFinite('foo')); // falseconsole.log( Number.isFinite('15'));  // falseconsole.log( Number.isFinite(true));  // falseNumber.isNaN()用于检查一个值是否为 NaN 。console.log(Number.isNaN(NaN));      // trueconsole.log(Number.isNaN('true'/0)); // true // 在全局的 isNaN() 中,以下皆返回 true,因为在判断前会将非数值向数值转换// 而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 falseNumber.isNaN("NaN");      // falseNumber.isNaN(undefined);  // falseNumber.isNaN({});         // falseNumber.isNaN("true");     // false

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

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

方法的行为没有发生改变。

Number.parseInt()

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

// 不指定进制时默认为 10 进制Number.parseInt('12.34'); // 12Number.parseInt(12.34);   // 12 // 指定进制Number.parseInt('0011',2); // 3 // 与全局的 parseInt() 函数是同一个函数Number.parseInt === parseInt; // trueNumber.parseFloat()用于把一个字符串解析成浮点数。Number.parseFloat('123.45')    // 123.45Number.parseFloat('123.45abc') // 123.45 // 无法被解析成浮点数,则返回 NaNNumber.parseFloat('abc') // NaN // 与全局的 parseFloat() 方法是同一个方法Number.parseFloat === parseFloat // trueNumber.isInteger()用于判断给定的参数是否为整数。Number.isInteger(value)Number.isInteger(0); // true// JavaScript 内部,整数和浮点数采用的是同样的储存方法,因此 1 与 1.0 被视为相同的值Number.isInteger(1);   // trueNumber.isInteger(1.0); // true Number.isInteger(1.1);     // falseNumber.isInteger(Math.PI); // false // NaN 和正负 Infinity 不是整数Number.isInteger(NaN);       // falseNumber.isInteger(Infinity);  // falseNumber.isInteger(-Infinity); // false Number.isInteger("10");  // falseNumber.isInteger(true);  // falseNumber.isInteger(false); // falseNumber.isInteger([1]);   // false // 数值的精度超过 53 个二进制位时,由于第 54 位及后面的位被丢弃,会产生误判Number.isInteger(1.0000000000000001) // true // 一个数值的绝对值小于 Number.MIN_VALUE(5E-324),即小于 JavaScript 能够分辨// 的最小值,会被自动转为 0,也会产生误判Number.isInteger(5E-324); // falseNumber.isInteger(5E-325); // trueNumber.isSafeInteger()用于判断数值是否在安全范围内。Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1); // falseNumber.isSafeInteger(Number.MAX_SAFE_INTEGER + 1); // false

Math 对象的扩展

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

普通计算

Math.cbrt

用于计算一个数的立方根。

Math.cbrt(1);  // 1Math.cbrt(0);  // 0Math.cbrt(-1); // -1// 会对非数值进行转换Math.cbrt('1'); // 1 // 非数值且无法转换为数值时返回 NaNMath.cbrt('hhh'); // NaN
Math.imul

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

// 大多数情况下,结果与 a * b 相同 Math.imul(1, 2);   // 2
// 用于正确返回大数乘法结果中的低位数值Math.imul(0x7fffffff, 0x7fffffff); // 1
Math.hypot

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

Math.hypot(3, 4); // 5 // 非数值会先被转换为数值后进行计算Math.hypot(1, 2, '3'); // 3.741657386773941Math.hypot(true);      // 1Math.hypot(false);     // 0 // 空值会被转换为 0Math.hypot();   // 0Math.hypot([]); // 0 // 参数为 Infinity 或 -Infinity 返回 InfinityMath.hypot(Infinity); // InfinityMath.hypot(-Infinity); // Infinity // 参数中存在无法转换为数值的参数时返回 NaNMath.hypot(NaN);         // NaNMath.hypot(3, 4, 'foo'); // NaNMath.hypot({});          // NaN
Math.clz32

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

Math.clz32(0); // 32Math.clz32(1); // 31Math.clz32(0b01000000000100000000000000000000); // 1 // 当参数为小数时,只考虑整数部分Math.clz32(0.5); // 32 // 对于空值或非数值,会转化为数值再进行计算Math.clz32('1');       // 31Math.clz32();          // 32Math.clz32([]);        // 32Math.clz32({});        // 32Math.clz32(NaN);       // 32Math.clz32(Infinity);  // 32Math.clz32(-Infinity); // 32Math.clz32(undefined); // 32Math.clz32('hhh');     // 32

数字处理

Math.trunc

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

Math.trunc(12.3); // 12Math.trunc(12);   // 12 // 整数部分为 0 时也会判断符号Math.trunc(-0.5); // -0Math.trunc(0.5);  // 0 // Math.trunc 会将非数值转为数值再进行处理Math.trunc("12.3"); // 12 // 空值或无法转化为数值时时返回 NaNMath.trunc();           // NaNMath.trunc(NaN);        // NaNMath.trunc("hhh");      // NaNMath.trunc("123.2hhh"); // NaN
Math.fround

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

// 对于 2 的 24 次方取负至 2 的 24 次方之间的整数(不含两个端点),返回结果与参数本身一致Math.fround(-(2**24)+1);  // -16777215Math.fround(2 ** 24 - 1); // 16777215 // 用于将 64 位双精度浮点数转为 32 位单精度浮点数Math.fround(1.234) // 1.125// 当小数的精度超过 24 个二进制位,会丢失精度Math.fround(0.3); // 0.30000001192092896// 参数为 NaN 或 Infinity 时返回本身Math.fround(NaN)      // NaNMath.fround(Infinity) // Infinity // 参数为其他非数值类型时会将参数进行转换 Math.fround('5');  // 5Math.fround(true); // 1Math.fround(null); // 0Math.fround([]);   // 0Math.fround({});   // NaN

判断

Math.sign

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

Math.sign(1);  // 1Math.sign(-1); // -1 // 参数为 0 时,不同符号的返回不同Math.sign(0);  // 0Math.sign(-0); // -0 // 判断前会对非数值进行转换Math.sign('1');  // 1Math.sign('-1'); // -1   // 参数为非数值(无法转换为数值)时返回 NaNMath.sign(NaN);   // NaN Math.sign('hhh'); // NaN

对数方法

Math.expm1()

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

Math.expm1(1);  // 1.718281828459045Math.expm1(0);  // 0Math.expm1(-1); // -0.6321205588285577// 会对非数值进行转换Math.expm1('0'); //0 // 参数不为数值且无法转换为数值时返回 NaNMath.expm1(NaN); // NaN
Math.log1p(x)

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

Math.log1p(1);  // 0.6931471805599453Math.log1p(0);  // 0Math.log1p(-1); // -Infinity // 参数小于 -1 时返回 NaNMath.log1p(-2); // NaN
Math.log10(x)

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

Math.log10(1);   // 0// 计算前对非数值进行转换Math.log10('1'); // 0// 参数为0时返回 -InfinityMath.log10(0);   // -Infinity// 参数小于0或参数不为数值(且无法转换为数值)时返回 NaNMath.log10(-1);  // NaN
Math.log2()

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

Math.log2(1);   // 0// 计算前对非数值进行转换Math.log2('1'); // 0// 参数为0时返回 -InfinityMath.log2(0);   // -Infinity// 参数小于0或参数不为数值(且无法转换为数值)时返回 NaNMath.log2(-1);  // NaN

双曲函数方法

  1. Math.sinh(x): 用于计算双曲正弦。

  2. Math.cosh(x): 用于计算双曲余弦。

  3. Math.tanh(x): 用于计算双曲正切。

  4. Math.asinh(x): 用于计算反双曲正弦。

  5. Math.acosh(x): 用于计算反双曲余弦。

  6. Math.atanh(x): 用于计算反双曲正切。

指数运算符

1 ** 2; // 1// 右结合,从右至左计算2 ** 2 ** 3; // 256// **=let exam = 2;exam ** = 2; // 4

关于"ES6数值怎么表示"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"ES6数值怎么表示"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

数值 整数 参数 方法 安全 点数 范围 全局 符号 数字 结果 最小 对数 对象 精度 进制 两个 个数 之间 二进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全题库280 计算机网络技术基础知识心得 网络技术的不足与短板怎么写 网络安全教育手抄报的字体 数据库能支持多少个连接 三级网络技术没过 手机网页数据库可以用吗 什么软件开发工作有前途 南宁天图网络技术服务有限公司 软件开发者的法律责任 银行网络安全管家二维码 软件开发面临的挑战 软件开发和机器人有挂钩吗 游戏加速服务器有用吗 计算机网络技术教程化妆 软件开发的主要方法有哪些 河北数据库安全箱性价比 软件开发子公司还有必要去吗 软件开发商人物访谈 数据库表怎么让列与列关联 铜山区软件开发创造辉煌 天涯数据库技术 海淀数据库加密系统 画网络安全手抄报简单好看字少 昆明中奇互联网科技有限公司 济南时代智囊网络技术 瞪羚 数据库四所 云服务器账号密码 有一台云服务器可以干嘛 软件开发研究生毕业设计
0