JavaScript on üks veebimajutuse kolmest suurest: lisaks HTML (lehekülje struktuur) ja CSS (esitusviis), objektorienteeritud programmeerimiskeel pakub sisu dünaamilisust. Kuid JavaScript ei ole kohaldatav ainult lehekülje kujundamise kontekstis. Serveripoolseid rakendusi saab juhtida ka JavaScripti abil.
JavaScripti päritolu
Vaatamata nimele on JavaScriptil Java'ga vähe pistmist. Algselt pidi skriptimiskeel olema LiveScript ja selle arendas Netscape välja Netscape Navigatori ja Java-aplettide (Java-kliendirakenduste) koostoimimiseks. Kuna JavaScript oli tegelikult patenteeritud tarkvara, kujutas see endast konkurentsitegurit selliste ettevõtete jaoks nagu Microsoft esindatud. Need reageerisid JavaScripti arendamisele oma lahendustega, näiteks skriptimiskeelega JScript. Aja jooksul on aga JavaScript end kehtestanud kui peamine skriptimiskeel, mida nüüdseks toetavad kõik brauserid, kliendipoolsete ja (lisaks php) serveripoolne dünaamika.
Kliendipoolne dünaamika
Tõenäoliselt on JavaScripti enim kasutatud funktsioon kliendipoolne dünaamika. Klient on veebilehitseja. Kliendipoolne dünaamika tähendab, et kliendis kuvatava konkreetse sisuga manipuleeritakse. HTML on veebilehe struktuuri staatiline kirjeldus, nn dokumendi objektimudel (DOM). Kui CSS (Cascading Style Sheets) kasutatakse selle "skeleti" eraldi kujundamiseks, siis JavaScript pakub võimalust HTML-elemente liigutada, kustutada või lisada.
Seda DOM-ga manipuleerimist (DOM scripting) saab kasutada mitmel viisil. Funktsioonid on algselt seotud teatud sündmustega nn sündmuste käitlejate kaudu. Need võivad olla kasutaja klikid, ajad või isegi veebilehe laadimine. Sündmuspõhiseid muudatusi saab seejärel käivitada HTML-elementidele määratud ID-de kaudu. See võib hõlmata kõike alates lihtsate dünaamiliste vormide või tabelifiltrite programmeerimisest kuni videomängijate või keerulise dünaamilise graafika integreerimiseni.
JQuery: Vähem keeruline JavaScript
JavaScript on näide objektorienteeritud programmeerimiskeeltest. Seetõttu on kogenematuid veebidisainereid ootab suhteliselt kõrge sisenemislävi. Piiramata JavaScripti funktsionaalsust (palju), pakub JavaScripti raamatukogu JQuery lihtsustatud süntaksit, mis võimaldab kõige tavalisemaid kasutusviise kiiresti ja lihtsalt. Kui JavaScript pakub oma prototüüpide (klasside asemel), instantside (konkreetsete objektide) ja meetodite (objektidega seotud funktsioonide) määratlusega sarnast keerukust ja muudetavust nagu näiteks Java või Python, siis JQuery piirab sõnavara ja struktuure. Käsklused on pesastatavad, nii et struktuurist saab üsna kiiresti aru. Seega, kui tegemist ei ole keeruliste, ebatavaliste rakendustega, on väga tõenäoliselt olemas lihtne lahendus JQuery's.
Serveripoolne dünaamika: AJAX ja Node.js
Lisaks DOM-ga manipuleerimisele kasutatakse JavaScripti ka serveriga suhtlemiseks, näiteks andmebaasi päringute tegemiseks. Alates 2009. aastast on olemas node.js, raamistik serveripoolseks dünaamiliseks muutmiseks JavaScriptiga. See oli võimalik juba enne 2009. aastat, kuid node.js võimaldab lihtsamat integreerimist. See on JavaScript programmeerijate jaoks eelis, kuna nad ei pea enam kasutama teisi keeli, näiteks php-d. Lisaks võimaldab node.js ka protsesside paralleelsust. See on eelis, sest liiga palju selliseid nn niite võib põhjustada seisakut. Node.js-i puhul käivituvad päringud ühes niidis, mis võib jõudlust märkimisväärselt suurendada.
Node.js on näide AJAXi võimalustest. See lühend tähistab menetlust nimega Asünkroonne JavaScript ja XML. See põhimõte võimaldab taotleda serverite sisu, ilma et oleks vaja kogu lehekülge uuesti laadida. Paljude veebipakkumiste, näiteks YouTube'i puhul oleks täielik ümberlaadimine pärast videopäringuid või kommentaaride laadimist suur puudus. AJAX on ka lahendus päringute kuhjumise probleemile tänu asünkroonsele töötlemisele, nagu eespool Node.js puhul selgitatud.
JavaScripti integreerimine
JavaScripti põhiline integreerimine veebipakkumistesse toimib täpselt samamoodi nagu ühendus CSS-failidega. Selleks on kaks võimalust: Ühelt poolt võib JavaScripti kasutada HTML-dokumendi päises või teiselt poolt HTML-dokumendi kehas.