number in Javascript

最近在看《Impatient JS》,熟悉的地方快快略过,看到了JS中的数字,现在来看有:

  • number
  • bigint

number

number很神奇,可以是整数,也可以是浮点数,所以number的实现,其实是浮点数,而且是double类型的浮点数,范围是64个二进制位,符合IEEE 754……以前在看到float的时候基本都会带出来IEEE 754这个标准。这里面具体讲了什么我完全没看过,但今天在《impatient JS》中,简单了解到了一些。

说是64位,实际可用来表示数字的有53位,这53位中还有1位被用作表示符号(正负号);除了53位,剩下的11位被用作了指数部分(科学计数法),范围-1023~1024。

bigint

Bigint is a new primitive data type for integers. Bigints don’t have a fixed storage size in bits; their sizes adapt to the integers they represent:

  • Small integers are represented with fewer bits than large integers.
  • There is no negative lower limit or positive upper limit for the integers that can be represented.