本文摘自字节青训营社区技术问答板块
#1 在什么情况下 a === a - 1 ?(上)
- 正负 Infinity
- 给 a 赋一个很大的值(准确地说,是超过
Number.MAX_SAFE_INTEGER
的数)
这是因为在 JavaScript 里,整数可以被精确表示的范围是从-2 ** 53 + 1
到2 ** 53 - 1
,即 -9007199254740991 到 9007199254740991。超过这个数值的整数,都不能被精确表示。 - 注意 NaN 跟任何值都不相等,包括 NaN 本身
#2 在什么情况下 a === a - 1 ?(下)
使用 defineProperty
函数
1 | let count = 0; |