Number.MIN_SAFE_INTEGER is the smallest integer a JavaScript Number can represent exactly — -(253 - 1) (-9007199254740991). Below that, float rounding skips integers. It is a static property (ES2015), not a method.
Read the notes below before you rely on this property. Prefer feature detection when support is limited.
Syntax
Use Number.MIN_SAFE_INTEGER. Start with this line.
JavaScript
Number.MIN_SAFE_INTEGER
Call
What it does
Number.MIN_SAFE_INTEGER
Primary signature.
Built into JavaScript. Read Number.MIN_SAFE_INTEGER on the Number constructor — no import required.
Library declarations
JavaScript
Number.MIN_SAFE_INTEGER
Parameters
Parameter
Description
BigInt
Optional. Exact integers outside the safe range
Return Value
Return Value
Description
*
The current value of Number.MIN_SAFE_INTEGER.
JavaScript Examples
Example 1 — Read Number.MIN_SAFE_INTEGER
Print the constant and confirm it equals -Number.MAX_SAFE_INTEGER.
One below.min - 1 is outside the safe range → false.
Literal form. The decimal literal -9007199254740991 is the same safe value.
Use as a gate. Reject or convert to BigInt when the check fails.
Compatibility
Browser & Runtime Support
Number.MIN_SAFE_INTEGER is part of ES2015 and is Baseline Widely available in modern browsers and Node.js.
✓ Baseline · ES2015
Number.MIN_SAFE_INTEGER
Supported in Chrome, Firefox, Safari, Edge, and Node.js for years. Safe for modern apps without a polyfill.
98%Modern browser support
Google ChromeSupported · Desktop & Mobile
Full support
Mozilla FirefoxSupported · Desktop & Mobile
Full support
Apple SafariSupported · macOS & iOS
Full support
Microsoft EdgeSupported · Chromium
Full support
Internet ExplorerNo native support · Use a polyfill
Polyfill
OperaSupported · Modern versions
Full support
Samsung InternetSupported · Android
Full support
BunSupported · JavaScript runtime
Supported
DenoSupported · JavaScript runtime
Supported
Node.jsSupported · Server runtime
Supported
Android WebViewSupported · Modern WebView
Full support
Number.MIN_SAFE_INTEGERExcellent
Bottom line: Use Number.MIN_SAFE_INTEGER freely in modern JavaScript. Older engines without it can use the literal -(Math.pow(2, 53) - 1) as a fallback.
Frequently Asked Questions
Number.MIN_SAFE_INTEGER is the smallest integer JavaScript can represent exactly as a Number — -(2^53 - 1), which is -9007199254740991. Below that, consecutive integers are no longer all representable.
Yes. Read it on Number itself: Number.MIN_SAFE_INTEGER. There is no (5).MIN_SAFE_INTEGER on number instances, and it is not a method.
MIN_SAFE_INTEGER equals -MAX_SAFE_INTEGER. Together they bound the safe integer window: from -(2^53 - 1) to 2^53 - 1.
Safe means integers can be represented exactly and compared correctly. Past the bound, Number.MIN_SAFE_INTEGER - 1 === Number.MIN_SAFE_INTEGER - 2 is true — which is mathematically wrong.
No. MIN_VALUE (~5e-324) is the smallest positive Number near zero. MIN_SAFE_INTEGER is the most negative exact integer (~-9e15).
It is Baseline Widely available (ES2015) and supported in every modern browser and Node.js.