Deo zbornika Učimo Javascript
Opasnost labavih tipova
Budući da je JavaScript slabo tipiziran jezik, ista funkcija može primati različite tipove podataka.
Na primer, naredna funkcija se može legitimno pozivati sa brojevima i sa znacima:
const saberi = (x, y) => x + y
console.log(saberi(3, 4))
console.log(saberi('Zdravo', 'Svete'))
Jedini zahtev je da operacija ima smisla za odabrani tip podataka.
Meštanje struna i brojeva
No, možemo dobiti i neočekivane rezultate. Ako pokušamo da saberemo brojeve koje smo dobili putem korisničkog unosa, dobićemo nadovezane strune, jer korisnički unos je uvek string:
const saberi = (x, y) => x + y
x = prompt('Unesi prvi broj') // unesi 2
y = prompt('Unesi drugi broj') // unesi 3
console.log(saberi(x, y)) // rezultat je 23
Da bismo osigurali očekivani rezultat, moramo primeniti eksplicitnu konverziju tipova:
saberi(Number(x), Number(y))
Meštanje struna i bulovih vrednosti
Ako vrednosti true
ili false
stavimo pod navodnike, postaje stringovi. Na primer:
var bul = "true"
console.log(typeof bul)
Ovo se može desiti kada selektujemo bulove atribute HTML elemenata, koji nam mogu doći kao string.