Number.isInteger / isSafeInteger în JavaScript

Numere și matematică ES2015 (ES6)

Verifică dacă o valoare este un număr întreg (și dacă este întreg fără pierdere de precizie).

Sintaxă
Number.isInteger(valoare)
Number.isSafeInteger(valoare)

Ce face Number.isInteger / isSafeInteger

Number.isInteger returnează true doar pentru valori de tip număr fără zecimale. Textele nu sunt transformate: Number.isInteger("5") dă false.

Number.isSafeInteger verifică în plus că numărul este între -(253 - 1) și 253 - 1 (Number.MAX_SAFE_INTEGER). Peste această limită, JavaScript nu mai poate reprezenta exact toate numerele întregi; pentru ele folosește BigInt.

Parametri

Parametru Descriere
valoare Valoarea verificată.

Ce returnează

true sau false.

Exemple

Exemplul 1: Ce este și ce nu este întreg

console.log(Number.isInteger(5));
console.log(Number.isInteger(5.0));
console.log(Number.isInteger(5.5));
console.log(Number.isInteger("5"));
console.log(Number.isInteger(Infinity));

Rezultat

true
true
false
false
false

Exemplul 2: Limita numerelor întregi sigure

const mare = 2 ** 53;

console.log(Number.MAX_SAFE_INTEGER);
console.log(mare === mare + 1);
console.log(Number.isInteger(mare), Number.isSafeInteger(mare));
console.log(Number.isSafeInteger(mare - 1));

Rezultat

9007199254740991
true
true false
true

Exemplul 3: Validarea unei cantități

function cantitateValida(text) {
  const n = Number(text);
  return Number.isInteger(n) && n > 0;
}

console.log(["3", "2.5", "-1", "abc", ""].map(cantitateValida));

Rezultat

[ true, false, false, false, false ]

Greșeli frecvente

  • Dai textul din formular direct lui Number.isInteger și primești mereu false. Transformă-l întâi cu Number().
  • Uiți că Number("") este 0. Un câmp gol trece de verificarea „este întreg”; verifică separat textul gol.

Comenzi înrudite

  • Number.isNaN / isNaN: Verifică dacă o valoare este NaN („nu este un număr”), rezultatul unui calcul sau al unei conversii eșuate.
  • parseInt / Number: Transformă un text în număr: parseInt pentru întregi, parseFloat pentru zecimale, Number pentru conversie strictă.
  • BigInt: Numere întregi de orice mărime, fără pierdere de precizie; se scriu cu n la final.