不太常用的原语bigint和symbol的介绍

JavaScript是一门动态类型语言,它支持各种数据类型,如数值、字符串、布尔值、数组等等。除了这些基本数据类型之外,JavaScript还提供了不太常用的原语类型,包括BigInt和Symbol。这篇技术博客将介绍BigInt和Symbol的具体用法和优势。

BigInt

BigInt表示任意精度的整数,可以处理超过Number类型所能表示的最大整数值的数值。BigInt从ES2020版本开始引入,可以使用数字字面量或者BigInt()构造函数创建。

下面是BigInt的创建和运算示例:

let bigNum = 123456789012345678901234567890n;
console.log(bigNum); // 输出:123456789012345678901234567890n

let a = 198273479238471289432n;
let b = 342139048901234n;
console.log(a + b); // 输出:198273479238471631666n

可以看到,BigInt类型的变量必须以“n”字符结尾,用于表示BigInt类型。在运算中,BigInt可以和其他BigInt类型的值进行加、减、乘、除、取模等操作,但不能使用“+”操作符连接字符串类型。

Symbol

Symbol是一种新的数据类型,它的值是唯一的,并且是不可变的。Symbol从ES2015版本开始引入,可以用Symbol()构造函数或者Symbol.for()静态方法创建。

Symbol主要用于标识对象属性名的唯一性,如下面的例子所示:

const id = Symbol('id');
let user = {
  name: 'Tom',
  [id]: '001'
};

console.log(user[name]); // 输出:Tom
console.log(user[id]); // 输出:001

可以看到,通过Symbol类型的属性名,我们可以轻松地标识出对象中不同属性的唯一性,在实践中经常被用于库和框架中,用于避免属性名冲突的问题。

同时,Symbol类型还具有内置的一些常量,如Symbol.iterator, Symbol.toPrimitive等等,用于定义迭代器和类型转换等语言级别的行为。

总之,BigInt和Symbol这两种原语类型不太常用,但在实践中提供了极大的帮助。BigInt可以处理超大整数,而Symbol提供了一种可靠的解决方案用于避免属性名冲突的问题。在使用这两种数据类型的时候,需要根据实际需求和语法规范来决定是否使用。

猜你喜欢

转载自blog.csdn.net/weixin_61719769/article/details/129819514