Javascript数值

2022-11-28  本文已影响0人  败于化纤

JavaScript 要数值类型 Number 用于表示整数和近似实数。

JavaScript 使用 IEEE 754 标准 定义的 64 位浮点格式表示数值,这意味着 JavaScript 可以表示:

整数字字面量

0b10101 // => 21: (1*16 +日* + 吃+ l*l) 
00377 I I => 255: (3*64 + 7*8 + 叫)

浮点数字面量

[digits][. digits][ (EI e)[ (+I - ) ]digits ]

例如:

3.14 
2345.6789 
. 333333333333333333 
6.02e23 II 6.@2 x 23 
1.4738223E- 32 II 1.4 822] X 1@ -32

数值字面量中的分隔符

JavaScript 中的算术

ES6 Math 象上又定义了 批函数

Math .cbrt( 27) //=>3 立方根
Math. hypot( 3, 4) //=>5 有参 方和 的平
Math. log10( 100) //=>2以10 为底的对数
Mat h. log2( 1024) // => 10 以2为底的对数
Math. loglp(x) // (l+ x)的自 然对数 确到 小的x
Math. expl'll(x) // Math,exp(x)-1 Math.loglp () 的逆运算
Math.si.gn( x) //对 < 或==或>0的参数返回
Ma th . i.1'1ul( 2, 3) // => 优化的 位整 乘法
Math . clz32( 0xf) // => 28: 32 整数 中前 位数
Math trunc( 3.9) //=> ο3 剪掉 数部 得到整数
Math. fround( x) //舍入到最接近的 32 浮点数
Math .si.nh(x) //双曲 弦,还有 ath.cosh () ath. nh()
Math . asi.nh( x) // 线反 还有 Math. acosh () Mat h. atanh()

二进制浮点数与舍入错误

实数有无限多个,但 JavaScript 的浮点格式只能表示其中有限个(确切地说,是18 437 736 874 454 810 627 个)。这意味着在通过 JavaScript 操作实数时,数值表示的经常是实际数值的近似值。

JavaScript (以及所有现代编程语 )使用的 IEEE-754 浮点表示法是 进制表示法,这种表示怯可以精确地表示如 1/1024 等分数。然而,我们最常用的分数(特别是在进行财务计算时)是十进制分数: 1/10 100 等等。 进制浮点表示法无法精
确表示哪怕 0. 这么简单的数。

通过 Big Int 表示任意精度整数

ES2020 JavaScript 义了 种新的数值类型 Biglnt 2020 初, Chrome irefoxEdge Node 都实现了这个类型, Safari 也在实现中。顾名思义, Biglnt 这种数值类型的值是整数。之所以增加这个类型, 要是为了表示 64 位整数,这对于兼容很多其他语言和API 是必需的。但 Biglnt 值可能有数千甚 数百万个数字,可以满足对大数的需求(不过, Biglnt 的实现并不适合加密,因为它们没有考虑防止时序攻击)。

日期和时间

Date:

JavaScript 为表示和操作与日期及时间相关的数据而定义了简单的 Date JavaScript的Date 是对象,但也有数值表示形式,即自 1970 日起至今 毫秒数,也叫时间戳:
let ti.l'lestal'lp = Date . now(); //当前时间的时间戳(数值)

let now = new Date(); //当前时间的日期对象
let 1'15 = now.getTi.l'le(); //转换为毫秒时间戳
let i.so = now.toISOSt i.ng(); II 转换为标准格式的字符串
上一篇 下一篇

猜你喜欢

热点阅读