JavaScript · Senior · Запитання 31 з 75
Чому 9007199254740993 === 9007199254740992 повертає true?
- ✓Правильна відповідь: Числа, більші за
MAX_SAFE_INTEGER, не подаються точно - 2Це баг рушія V8, який проявляється лише в Chrome
- 3Остання цифра довгого числового літерала відкидається
Пояснення
У double 53 біти мантиси, тому після 2^53 подаються не всі цілі. Великі ID з API (наприклад, 64-бітні) приходять у JSON як рядки або обробляються через BigInt, інакше мовчки спотворюються. Перевірка - Number.isSafeInteger.