Luin äskettäin kirjan nimeltä jQuery in Action. Se sai minut oivaltamaan miten JavaScriptiä kuuluu nykyään tehdä. JavaScript on muuttunut aika radikaalisti kuluneiden Ajax-vuosien aikana.

Kaiken perustana on tietysti nykyään objektiorientoituneisuus. JavaScript on OO-kielenä oikein kehittynyt ja toimiva juuri siihen tarkoitukseen, mihin sitä käytetäänkin. jQuery in Action -kirjan lopussa onkin hyvä tiivistelmä siitä, miten JavaScript-objekteja luodaan, miten closuret toimivat ja mitä "this" oikeastaan tarkoittaa.

jQuery-kirjasto itsessään ratkaisee oikeastaan kaksi JavaScriptin pahinta ongelmaa: jäyhän W3C DOM -mallin hankalakäyttöisyyden sekä eri selainten pienet eroavaisuudet JavaScript-rajapinnoissa. Jälkimmäinen on käyttäjän kannalta no-brainer: kaikki toimii yhtenäisellä tavalla selaimesta riippumatta. Varsinkin eventtien käsittelyssä tämä on korvaamaton apu.

DOM-puun käsittelyssä jQuery taas loistaa "wrapped set" -ajattelullaan. Perinteisellä JavaScriptillä saattaisi törmätä esimerkiksi tällaiseen koodinpätkään, joka vaihtaa tiettyjen linkkien väriä:

container = document.getElementById('container');
for (i = 0; i < container.childNodes.length; i++) {
    if (container.childNodes[i].nodeName == 'a') {
      if (container.childNodes[i].style.className == 'link') {
            container.childNodes[i].style.color = '#000000';
        }
    }
}

jQuerylla sama vaihto tehtäisiin yhdellä rivillä näin:

$('#container a.link').css('color', '#000000');

Yksinkertaisuus vain korostuu, kun tehdään monimutkaisempia hakuehtoja ja tarvitaan animaatioita jne. Itse olen sen verran vaikuttunut jQueryn eduista, että aion käyttää sitä jatkossa kaikissa Ajax-projekteissa ja muutenkin webbisivujen kehityksessä.