Inleiding

Het komt veel voor dat men JavaScript noemt als één van de drie kerntalen van web pagina's.

Zo heb je HTML (Hyper Text Markup Language) om inhoud en structuur te geven aan een webpagina. Het bevat je pagina titel, hoeveel divisies er in je pagina zijn, hoeveel paragrafen en wat de inhoud is van die paragrafen.

Dan is er CSS (Cascading Style Sheet) om de presentatie van je pagina te verzorgen: wat voor lettertype, de achtergrond of de breedte van een divisie, ...

Als derde is er JavaScript, de programmeertaal voor gedrag en interactiviteit. Wat gebeurt er wanneer je met je cursor over een menu gaat of wanneer je de verkeerde waarde in een veld in een formulier ingevuld hebt, of hoe lang een foto in een slideshow zichtbaar is, ...

JavaScript is een programmeertaal die vaak wordt aangezien als scriptingtaal. Soms hoor je van programmeurs dat JavaScript met opzet gelimiteerd is en dat je er daarom geen desktop applicaties mee kan maken, maar dat is ook de bedoeling! JavaScript werkt enkel in één applicatie, de web browser. Althans, dit was vroeger zo, nu kan het ook op de server, op een mobiel toestel, ... overal zo een beetje.

En of dit nu Internet Explorer, Safari, Firefox, Chrome, of Opera is, zij bevatten allemaal een JavaScript motor die de JavaScripts in je pagina doen werken!

Het operating systeem van je computer draait de web browser, die bevat je webpagina, en die bevat je JavaScripts.

Een andere eigenschap van JavaScript is dat het geen toegang heeft tot bestanden op je computer. Er is geen manier om bestanden te laden of te bewaren omdat dit een beveiligingsrisico is. Er is geen manier om een database aan te spreken of om USB poorten te gebruiken. Dit is vreemd voor een doorwinterde programmeur omdat de meeste programmeertalen vooral gaan over input/output, maar JavaScript niet! JavaScript is niet ontworpen als een algemene programmeertaal. Het werd ontworpen om web pagina's te manipuleren en doet dat ook heel goed.

Zoals je weet, wanneer een gebruiker zijn web browser opent en een webpagina oproept van een server, dat ze HTML en CSS worden toegezonden als gewone tekst. De browser doet zijn best om alles er netjes uit te laten zien. Zo is het ook met JavaScript.

JavaScript is een 'client-side' taal. Het wordt verstuurd naar de computer van de gebruiker en daar pas uitgevoerd. Dit in tegenstelling tot talen zoals PHP, ASP.NET, Ruby on Rails, ... Deze talen voeren hun opdrachten uit op de web server en sturen de resultaten naar de gebruiker.

Omdat JavaScript zo populair is, wordt ze ook gebruikt binnen andere applicaties zoals Adobe Acrobat of Photoshop of Unity3D. Ook server-side wordt deze taal steeds meer gebruikt (Node.js, Google Apps Script), maar daar gaan we niet verder op in.

Een belangrijk aspect van het opsturen en uitvoeren van scripts in de web-browser van de gebruiker, is dat deze gebruiker 'JavaScripts uitvoeren' aan heeft staan. Wanneer dat niet zo is, wordt het script wel opgestuurd, maar niet uitgevoerd. Deze situatie komt echter bijna niet meer voor wat niet wil zeggen dat we ons best moeten doen om onze pagina's te doen werken met of zonder JavaScript. Natuurlijk zal een website zonder JavaScript veel statischer zijn.

Een ander probleem is het verschil tussen browsers. Zoals je waarschijnlijk al wel weet ziet een website er niet helemaal het zelfde uit in verschillende browsers met dezelfde meegestuurde CSS. Hetzelfde geldt voor JavaScript en dit is de reden waarom deze taal zo lang een slechte naam heeft gehad. Tot voor kort moest je scripts voorzien van browser detectie zodat elk script juist uitgevoerd zou worden. Gelukkig is dat nu voorbij! Er zijn nog wel enkele punten waar dit nog steeds zo is, maar voor het fundamentele dat we hier bespreken niet.