Что выведет код Middle Типы и приведение обновлено

Предел точности целых

Вопрос

Что выведет код? По строке на каждый вывод.

console.log(Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2);
console.log(9007199254740993);
console.log(BigInt(Number.MAX_SAFE_INTEGER) + 2n);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: true, 9007199254740992, 9007199254740993n. Почему так За пределами 2^53−1 целые перестают быть точными.

Что выведет

true
9007199254740992
9007199254740993n

Разбор

Почему так

За пределами 2^53−1 целые перестают быть точными. Для идентификаторов из бэкенда это значит: передавать их строкой или использовать BigInt, иначе id молча испортится.

Вывод

true
9007199254740992
9007199254740993n

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме