ES2020 新特性:BigInt、dynamic import() 等等
JavaScript 是一种高级编程语言,拥有着庞大的生态系统和广泛的应用。而 ES2020 是其最新的标准,也就是 ECMAScript2020,其中包含了一些新的特性,这篇文章将会重点介绍 BigInt 和 dynamic import()。
BigInt
在之前 JavaScript 的 Number 类型已经非常强大,能够表示的数字范围也是相当之广。但是随着数字的不断增大,JavaScript 的 Number 类型就开始出现精度问题,因为它本质上只是一个双精度浮点数。为了解决这个问题,ES2020 引入了 BigInt 类型,它可以用来表示任意精度的整数,不受传统数字类型的限制。
定义 BigInt 的方法很简单,在数值后面加上 n 就行了:
----- ------ - ------------------------------------------ ------------------ -------- -- --------
注意,使用 BigInt 时需要在数字后面加上 n,否则解析器会将其解析为传统的 Number 类型。
运算符和方法
BigInt 支持所有数字运算操作符,例如 +、-、*、/、% 等等。同时也可以使用 Math 对象中与整数相关的方法(例如 Math.floor() 等等),不过需要注意的是,它们的返回值依然是 BigInt 类型。
----- ------- - ------------------------------------------ ----- ------- - ------------------------------------------ ----- ------- - ------- - -------- --------------------- -- ------------------------------------------ ----- ------- - ------- - --- --------------------- -- -----------------------------------------
类型转换
由于 BigInt 类型和传统数字类型存在着区别,因此在使用时需要进行一些类型转换。BigInt 可以通过 Number() 方法转化为普通数字类型,但是如果 BigInt 数字的位数超过了普通数字类型所能表示的范围,那么结果就会变为 Infinity 或 -Infinity。
----- ------ - ------------------------------------------ ----- --------- - --------------- ----------------------- -- --------
相反地,传统数字类型可以通过 BigInt() 方法转化为 BigInt 类型,不过注意这样可能会造成精度损失。
----- --------- - ----------------------------------------- ----- ------ - ------------------ -------------------- -- -----------------------------------------
dynamic import()
在传统的 JavaScript 中,我们需要使用