js笔记十三:nodejs 原生BigInt

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zdhsoft/article/details/89670901

从node 10.4就开始支持了,不过BigInt还是  stage 3 TC39 proposal,Stage 3意思是  proposal is ready and for browsers to start implementing

有两种办法定义BigInt,一个是以n结尾的数字,一个是BigInt()方法。如下所示:

let t = 100n;
let t1 = BigInt('100');
let t2 = BigInt('0x64');
let t2 = BigInt(100);
//这几种方法,都可以定义BigInt

BigInt不是一个number,是有一个明确的类型 BigInt

现有的类型有:

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol
  • BigInt     -新类型
typeof 100n; // "bigint"  返回的是新类型

支持 ===、 !==、 ==、 !=、等运算符,

100n === 100n; //true
100n !== 101n; //true
100n === 100; //false  注意,第二个不是BigInt类型

100n == 100; //true 这个可以。

还有+、-、*、/、%,+=, -=,** 等运算符,要求两边都是BigInt类型,否则会报错。

还支持++,--运算符。

5n ** 3n;//可以
5n ** 3; //报错
5n + 3;  //报错
5n + 3n; //可以

对于 > >=,<,<=,==,!= 运算符可以和数字进行比较

100n > 100; //false
100n >= 100; true
100n > 99; //true

//其它的比较运算符也可以

另外Math的方法,对BigInt是不支持的。

JSON.stringify也是不支持的,需要

BigInt.prototype.toJSON = function() { return this.toString(); };

后就可以支持。

toString方法是支持的,radix有效值是[2,36],默认是10.

最后补充一点,使用除法运算符,得到的是整数,不是浮点数

如:

100n/7n; //14n 得到的是14n,不是小数。

更多支持可以去https://node.green看看,下图是对BigInt的支持说明

js笔记一:js中forEach,for in,for of循环的用法

js笔记二:node.js的npm使用理解

js笔记三:Set

js笔记四:node 6.9.x for gulp完整配置过程

js笔记五:数组基础篇

js笔记六:数组功能篇

js笔记七:数组的解构与变参

js笔记八:class

js笔记九:当运行脚本

js笔记十:vscode代码提示

js笔记十一:js监测变化并动态加载

js笔记十二:利用await和async,将回调函数变成同步的处理的办法

js笔记十三:nodejs 原生BigInt

猜你喜欢

转载自blog.csdn.net/zdhsoft/article/details/89670901