随着 JavaScript 在现代应用程序中的普及,ECMAScript 新版本的发布成为了一个备受期待的事件。在 2019 年,ECMAScript 2019(ES10)带来了两个有趣的新特性:数字分隔符和 BigInt。在本文中,我们将深入了解这两个新特性的含义、用法和指导意义,并通过代码示例展示它们的工作原理。
数字分隔符
在日常生活中,数值很可能是以逗号或点号作为分隔符来表示的。在编写 JavaScript 代码时,这种习惯用法也会带给我们一定的便利——我们可以使用下划线来显式地分隔长数字,以提高代码的可读性。例如:
const bigNumber = 1_000_000_000; const biggestNumber = 1_000_000_000_000_000_000_000_000_000_000_000_000;
在 ECMAScript 2019 中,这种“数字分隔符”被加入到了语言标准中。其基本语法如下:
const number = 1_000_000;
可以在任意数字字符之间插入下划线,以分隔长数字,从而让代码更易读、更易理解。值得注意的是,数字分隔符只是在代码中间起到分隔作用,而不会影响数字本身的值。
数字分隔符的指导意义在于,大幅提高了代码可读性和可维护性,特别是在处理大数值时,使用数字分隔符来表示数值可以更加清晰地表明数字的真实含义,减少因为数字长而造成的解读错误,比如:在一份代码中,你能看出 100000000
是什么意思,但在一个大型的应用程序中,可能很难区分出这是百万还是十亿或更多。
BigInt
在 ECMAScript 2019 中,另一个值得注意的新特性是 BigInt。它是一个全新的数据类型,用来表示超出 JavaScript 数值范围(Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER)的数值。
使用 BigInt 很简单,只要在一个整数数值后加上 n
或者 N
即可:
const bigInt = 1234567890123456789012345678901234567890n;
BigInt 除了在表示超出范围的数值时更为方便,还有一些其他的特点:它不会自动转换成普通的 Number 类型,因此没有精度丢失的隐患;与普通数值的计算不一样,BigInt 不能直接与普通数值进行计算,需要进行显示转换。
下面展示一些使用 BigInt 的代码示例:
-- -------------------- ---- ------- -- -- ------ -- ----- ------- - ------------ ----- ------- - ------------------------------------------ ----- ------- - --------------------------------------------------- --------------------- --------------------- --------------------- -- ------ -------- ----- - - ------- - --- ----- - - ------- - --------------------- ----- - - ------- - -------------------------------- ----- - - ------- - ---- --------------- --------------- --------------- --------------- -- ---- ------ -- -------- ---------------- - --- --- - - - --- --- ------ - --- --- ---- - - ---------- - -- - -- -- ---- - ------ -- ------- - ------ --------------- - ----- ------- - ---------------------------- ------------------------------------ -- ---------------------------
BigInt 为我们提供了一个方便的处理大数值的办法,无论是在普通计算还是在完成复杂的算术运算、密码运算或分解质因数等数学问题时,都显得尤为重要。
结论
在 ECMAScript 2019 中,数字分隔符和 BigInt 是 JavaScript 中的两个重要的特性。数字分隔符提高了代码的可读性,对于处理超出 Number 类型范围的大量数学操作,BigInt 提供了一个可恰当地解决方案。通过在代码中集成数字分隔符和 BigInt,会给我们付出更少的代价,使我们的代码更易于阅读、测试、调试和维护,而他们都是前端开发中的基本技术。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670a2017d91dce0dc87ef63b