Nekoliko JavaScript trikova; možda ih ne znate sve.
1. Broj parametara funkcije
Zasigurno vam je poznat objekt arguments koji u sebi sadrži sve parametre koji su poslani funkciji:
for(i = 0; i < arguments.length; i++) alert(arguments[i])
no možda ne znate da postoji jednostavan način za provjeriti koliko parametara funkcija očekuje:
funkcija.length
gdje je funkcija konkretni naziv funkcije. Tako dakle možete napraviti nešto poput ovog:
if(arguments.length != funkcija.length)
{
alert('Wrong number of parameters!')
}
• • • • •
2. Pretvaranje bilo kakve vrijednosti u TRUE ili FALSE
Vrijednost varijable bilo kojeg tipa se jednostavno može pretvoriti u true/false varijantu:
!!varijabla
gdje je varijabla naziv varijable bilo kojeg tipa.
Ovo je posebno korisno jer vas rješava dodatnih provjera za null, undefined i NaN vrijednosti - sve one postaju FALSE. Zajedno s nulom i praznim stringom. Sve ostalo je TRUE.
Provjerite:
var arr = new Array(false, NaN, undefined, true, 0, '', 1, -1, 42)
for(var i = 0; i < arr.length; i++)
{
alert(arr[i] + '=>' + !!arr[i])
}
3. Imenovanje petlji
Da li vam se kad dogodilo da u vanjskoj petlji imate unutarnju petlju, a unutar nje uvjet koji kad se ispuni treba prekinuti i unutarnju i vanjsku petlju, tj. treba break ali da izađe i iz vanjske?
(Nešto kao break [xy] u PHPu gdje xy kaže iz koliko petlji treba prekinuti.)
U JavaScript je to moguće ako "imenujemo" petlju, npr. "petlja":
petlja:
for(var i = 0; i < 100; i++)
{
for(var j = 0; j < 100; j++)
{
if(i == 3 && j == 3)
break petlja
}
}
alert(i + ',' + j) // result: 3, 3
Na tako imenovanoj petlji također funkcionira i continue.
4. Statične lokalne varijable
Statične lokalne varijable su varijable koje vrijede samo u funkciji, ali se ne resetiraju kod svakog poziva, tj. vrijednosti se čuvaju između uzastopnih poziva funkcije.
U JavaScriptu je to moguće izvesti tako da se vrijednost 1. put postavi "izvana".
function count()
{
return count.c++
}
count.c = 0
alert(count()) // result: 0
alert(count()) // result: 1
5. JavaScript include
Mnogo je grubih riječi izrečeno na račun nedostatka direktive include u JavaScriptu.
Nepotrebno jer se ona da iskemijati u nekoliko linija: u HEAD stranice dodamo SCRIPT element kojemu za source postavimo putanju do vanjske JS datoteke.
var headID = document.getElementsByTagName('head')[0]
var newScript = document.createElement('script')
newScript.type = 'text/javascript'
newScript.src = 'script.js'
headID.appendChild(newScript)
Ovaj niz linija će učitati datoteku 'script.js', ako ista egzistira.
• • • • •
Dobro, dobro, znali ste za sve ovo. Okej, u slijedećem postu pišem o ženama. I to nešto što ne znate. Probably. :P