为什么这是真的:parseInt(1111111111111,2)===parseInt(111111111111,2)

Why this is true: parseInt(1111111111111111,2) === parseInt(11111111111111111,2)

本文关键字:parseInt 111111111111 真的 1111111111111 为什么      更新时间:2023-09-26

这个问题只是为了好奇。

通过控制台

parseInt(1111111111111111,2) // 16 1's

返回

65535

parseInt(11111111111111111,2) // 17 1's

返回

65535

还有

//          16 1's                           17 1's
if(parseInt(1111111111111111,2) === parseInt(11111111111111111,2))

返回

true

诀窍在哪里?

感谢

11111111111111111是一个十进制数字文字,用于Javascript无法精确编码的过大数字。

parseInt(, 2)将在不是10的第一个字符处停止,因此一旦精度降低,它将停止解析。

把它换成绳子,你就没事了。