Funkcje parseInt() i parseFloat() służą do zamiany napisu na liczbę. Są często używane, gdy dane pochodzą z formularza, funkcji prompt() albo z pliku tekstowego, ponieważ takie wartości zwykle mają typ string.
parseInt()
parseInt() zamienia napis na liczbę całkowitą. Część ułamkowa zostaje pominięta.
console.log(parseInt("25")); // 25
console.log(parseInt("25.8")); // 25
console.log(parseInt("12px")); // 12
Jeżeli napis nie zaczyna się od liczby, wynikiem będzie NaN:
console.log(parseInt("abc")); // NaN
parseFloat()
parseFloat() zamienia napis na liczbę zmiennoprzecinkową, czyli może uwzględniać część ułamkową.
console.log(parseFloat("25.8")); // 25.8
console.log(parseFloat("3.14")); // 3.14
console.log(parseFloat("12px")); // 12
Różnica między parseInt() a parseFloat()
Najważniejsza różnica dotyczy liczb ułamkowych:
let x = "4.75";
console.log(parseInt(x)); // 4
console.log(parseFloat(x)); // 4.75
Związek z NaN
Obie funkcje mogą zwrócić NaN, jeśli konwersja na liczbę się nie powiedzie:
let dane = "tekst";
let liczba = parseFloat(dane);
console.log(liczba); // NaN
Na egzaminie warto pamiętać, że samo użycie parseFloat() zamiast parseInt() na zmiennej liczbowej nie powoduje automatycznie NaN. NaN pojawia się głównie wtedy, gdy JavaScript nie potrafi uzyskać poprawnej liczby.