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可以正常的进行位运算,如|、&、<<、>和^
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值