Мне всегда было интересно а что там будет если превысить MAX_SAFE_INTEGER. Понятно что ничего хорошего, но все же, что именно?

`const x = Number.MAX_SAFE_INTEGER + 1; const y = Number.MAX_SAFE_INTEGER + 2; console.log(x === y); // true

// YES. BUT

const a = Number.MAX_SAFE_INTEGER + 111 const b = Number.MAX_SAFE_INTEGER + 112 console.log(a === b) // false Произойдет "квантование", или по простому - снижение точности.

Сначала JS перестает "видеть" разницу между числами которая 2 и меньше. И чем дальше тем точность больше будет "загрубляться"

Чтобы легко было запомнить, я представил себе что это такой динамический LOD - когда текстуры и модели в игре начинают терять детализацию по мере отдаления от камеры игрока.

Немного душноты для тех кому интересна техническая часть Это связано с тем, как IEEE 754 представляет числа. После MAX_SAFE_INTEGER шаг между представимыми числами становится 2, затем 4, затем 8 и т.д. +1 и +2 попадают в один "слот", а +111 и +112 — в разные.

Мантисса: 52 бита + 1 скрытый бит = 53 значащих бита, и при превышении 2^53 младший бит мантиссы представляет 2 единицы, не 1`