js中身份证显示不全的解决办法

JS 中的Number类型是8字节,除去1字节的符号位,只有56bit用于数字表示,所以只能表示-9007199254740991 (-(2^53-1)) 和9007199254740991(2^53-1)之间的整数

而身份证一般是十八位, 所以超出的部分会自动四舍五入,如:
Number(610123195503220356) // 610123195503220400

解决办法:

一是定义成字符串
二是使用BigInt类型
在数字后面加一个n即可
即610123195503220400n

注意不能用===严格比较,因为BigInt和Number不是同一种类型,但是由于隐式转换的存在, ==会显示为true,

console.log(610123195503220400n== =610123195503220400); // → false

console.log(610123195503220400n== 610123195503220400); // → true

你可能感兴趣的:(js中身份证显示不全的解决办法)