前言
今天上班摸鱼的时候, 偶然间看到了一个Bigint基础数据类型. 咦~ 这是啥呀? 本着打破砂锅问到底的精神 整理了一下,简单做一下记录
先来回顾一下js的八大数据类型
- Number
- String
- Boolean
- Null
- Undefined
- Symbol
- Bigint
- Object
有同学 可能就会问 Array呢? Map呢?...
被你吃了???
js中万物皆对象 所有的对象都是Obejct构造函数创造的
所以这里简单的先把 这些归于 Obejct
typeof [] => obejct
typeof new Map() => Object
回到我们今天的主角 Bigint
首先 我们都知道 js中的Number类型是有限制的 而这个限制 就基于 Number.MIN_SAFE_INTEGER 到 Number.MAX_SAFE_INTEGER之间 如果超出这个范围 那么打印出来的就是 Infinity 或者 -Infinity
所以我们今天的主角登场了 借用MDN上的解释就是
BigInt 是一种内置对象,它提供了一种方法来表示大于 2**53 - 1 的整数。
这原本是 Javascript中可以用 Number表示的最大数字。BigInt可以表示任意大的整数。
使用
可以用在一个整数字面量后面加 n 的方式定义一个 BigInt ,如:10n,或者调用函数BigInt()。
let num = 2n;
let num2 = 2n ** 1000n;
需要注意的是 n 只是 定义BigInt类型的一种语法
let num1 = 2;
let num2 = 2n;
console.log(typeof num1) //number
console.log(typeof num2) //bigint
console.log(num1 === num2) // false
console.log(num1 == num2) // true
暂时就先写这么多吧 其实我们工作中一般也用不到这个,有个印象,不要在面试的时候被难住 就可以啦