Niekiedy może wydawać się, że w JavaScripcie jest wszystko, ale to tylko złudzenie. Bardzo podstawowym przykładem, który warto tutaj przytoczyć, jest sprawdzanie czy zmienna jest typu integer. Przedstawiam funkcję isInt(), której zadanie polega na interpretacji zmiennej w tym kontekście. O tym właśnie jest ten krótki artykuł. Wydawać się może, że podstawowe sprawdzenie typu zmiennej może być łatwe i przyjemne. Niekoniecznie.
Należy wziąć pod uwagę 3 rzeczy:
– czy mamy pewność, że typem sprawdzanej zmiennej jest Number,
– czy zmienna może być typu Float,
– czy ostatecznie mamy do czynienia z liczbą całkowitą.
function isInt(n) { return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n); }
Opiszmy funkcję od początku.
Jeżeli zmienna nie jest typu Number to nie jest również liczbą całkowitą.
Jeżeli zmienna jest typu Float to porównanie wartości zmiennoprzecinkowej z wartością dziesiętną da nam odpowiedź o zgodności.
Jeżeli w końcu zmienna nie jest not a number to mamy odpowiedź.
Wówczas zmienna ta jest liczbą całkowitą i zwracana jest wartość TRUE.
Jeśli posiadacie własne spostrzeżenia na ten temat, bądź lepsze rozwiązania tej kwestii, zachęcam do dyskusji w komentarzach. Być może istnieje jakaś lekka biblioteka, która ma zaimplementowane rozwiązanie tego problemu lub jakiś popularny framework (typu jQuery) ma to wbudowane?!