ES10的新特性 —— bigint - Go语言中文社区

ES10的新特性 —— bigint


前面的话

虽然es10现在还是草案,但Chrome大多数功能都已经实现。下面介绍新特性:bigint基本数据类型,es6中的基本数据类型包括:null,undefined,number,string,boolean,symbol 6种,现在增添一个新特性,可算是凑齐7兄弟了。

Bigint 任意进度整数

在javaScript中,number可以准确表达的最大数字是2^53没有比这更大的数字,
Number可以表示的最大安全范围是正负2^53 - 1。也就是Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER.BigInt类型出现就可以解决这一问题,比2^53大的数可以使用BigInt类型表示

语法

数字后面加n。例如:123n

也可以使用BigInt()来创建一个bigint类型的数。但是不能使用new操作符,BigInt不是构造函数。

 	console.log(typeof 123n);
    console.log(10n === BigInt(10));
    console.log(10n === BigInt(10) );
    console.log(10n === BigInt('10'));
    console.log(10n == 10);

在这里插入图片描述

运算

只能于同类型进行运算:

20n / 10n // 2
20n / 10 // Uncaught TypeError: Cannot convert a BigInt value to a number
转换为布尔类型

BigInt按照与Number相同的逻辑进行装换

if(0n){
	console.log(true);
}else{
	console.log(false);
}
// false
注意事项
  • BigInt不支持一元加号运算符
  • BigInt与Number之间不允许混合操作
  • 不能将BigInt传递给Web api和内置的JS函数,这些函数需要一个Number类型的数字。
Math.max(2n, 4n, 6n);// TypeError
  • BigInt转Boolean类型与Number类似
  • 元素都为BigInt的数组可以进行sort
  • BigInt可以正常的进行位运算,如|、&、<<、>和^
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41257129/article/details/103258745
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢