JavaScript

Introduktion till JavaScript
(eller ECMAScript)

Med HTML och CSS kan vi skapa innehåll och styra över utseendet på våra webbsidor. Vi kan dock inte skapa nya funktioner utöver de som finns inbyggda i webbläsaren. För att kunna göra det behöver vi ett programmeringsspråk. Det viktigaste programmeringsspråket på webben är JavaScript, eller ECMAScript.

JavaScript är, som namnet anger, ett skriptspråk. Detta innebär att det är frågan om ett relativt förenklat programmeringsspråk ägnat åt att tillföra enstaka nya funktioner genom små programsnuttar, skript.

Ett skript är inte ett ett självständigt program, utan används för att tillföra funktionalitet till något annat program som redan existerar, i detta fall webbsidor i en webbläsare. JavaScript, liksom andra skriptspråk, behöver inte som många andra programmeringsspråk kompileras till binärkod för att kunna köras utan består liksom HTML och CSS av enkel text. Att koden består av vanlig, enkel text är det normala för skriptspråk och innebär att enkelt att läsa, kopiera och återanvända kod. Människoläslig och klipp-och-klistravänlig.

JavaScript innehåller en mängd färdiga funktioner som man kan utnyttja och är dessutom särskilt anpassat för att arbeta mot en standardiserad modell för webbsidans struktur, det som kallas för DOM (the Document Object Model, dokumentobjektmodellen). Det finns alltså många olika färdiga pusselbitar att kombinera.

Hur det fungerar

JavaScript kan, på liknande sätt som CSS, antingen infogas direkt i ett HTML-dokument eller bestå av an separat textfil som länkas till i HTML-dokumentet.

JavaScriptkoden hämtas till och körs i webbläsaren på användarens egen dator (klienten). Alltså innebär inte JavaScript någon särskild belastning på servern som levererar sajten. Däremot kan det betyda att omfattande eller illa skriven JavaScript i kombination med en långsam dator kan leda till långsamma och tröga webbsidor.

JavaScript eller ECMAScript?

Det vanligaste namnet man stöter på för skriptspråket är JavaScript, men ibland ser man också namnet ECMAScript. Den enklaste förklaringen till detta är att ECMAScript är en standardiserad variant av JavaScript.

JavaScript utvecklas av The Mozilla Foundation, organisationen bakom webbläsaren Firefox. ECMASCript är är en standard som underhålls av standardiseringsorganet Ecma International

ECMAScript skapas alltså utifrån JavaScript, men innehåller inte nödvändigtvis allt det som JavaScript innehåller. Dels för att JavaScript utvecklas först, innan det förs in i Ecmastandarden och dels för att ECMAScript ska vara så kompatibelt som möjligt.

Man kan alltså se ECMAScript som en standardiserad delmängd av JavaScript, eller JavaScript som en dialekt av ECMAScript. Det finns också andra skriptspråk som är dialekter av ECMAScript och alltså nära släkt med JavaScript. Microsofts JScript och Adobes ActionScript (används i Flash och Air) är två exempel.

Skillnadena mellan Java- och ECMASript är i de alla flesta fall obefintliga i praktiken.

En sak är säker, hela ECMASCript finns i JavaScript, som dock kan innehålla ett eller annat som (ännu) inte finns i ECMAScript.

JavaScripts historia

Första versionen av JavaScript släpptes i slutet av 1995 av Netscape, tillverkaren av webbläsaren Netscape Navigator. Skriptspråket hette i sin första version LiveScript, men namnet ändrades snart till JavaScript i samband med Netscapes stöd för programmeringsspråket Java. Java och JavaScript har dock ingenting annat än namnet gemensamt, namnet JavaScript var en ren marknadsföringsgrej.

Netscapes konkurrent Microsoft skapade snart sin egen, konkurrerande form av JavaScript, som de av varumärkesskäl döpte till JScript, något som ledde till att de två dominerande webbläsarna använde var sina, delvis inkompatibla, skriptspråk.

Den uppkommna situationen löstes genom att Netscape lämnade in JavaScript till standardiseringsorganet Ecma International för standardisering 1996.

Efter standardisering som ECMA-262 1997 är både JavaScript och JScript att betrakta som dialekter av ECMAScript.

Idag utvecklas JavaScript av Mozilla Foundation, Netscapes arvtagare.