Introduktion till JavaScript

Från Webbling
Hoppa till: navigering, sök

När vi håller på med webbutveckling så finns det flera olika komponenter vi använder oss av. För dokumentstrukturen använder vi oss av HTML, för utseende använder vi oss av CSS och när vi vill skapa interaktivitet så använder vi oss av JavaScript.

JavaScript är ett scriptspråk som körs direkt i webbläsaren. Det ger oss tillgång till alla komponenter som bygger upp vår webbsida. Vi får så gott som fullkomlig kontroll över allt som har med sidan att göra. Det finns några inskränkningar på vad vi kan göra, främst utifrån ett säkerhetsperspektiv.

Namnet till trots så har JavaScript ingenting att göra med Java. Det är ett helt annat språk!

Historik

JavaScript är ett förhållandevis nytt språk som introducerades 1995. Det skapades av Brendan Eich när denne jobbade på Netscape (vilket var ett företag som gjorde en mycket populär webbläsare; Netscape Navigator, vilken är föregångaren till dagens Firefox). Språket skapades väldigt snabbt och har fått utstå mycket kritik för att det inte var väldesignat från grunden. Trots detta blev det snabbt accepterat som standardspråket för att köra kod i webbsidor.

1997 standardiserades språket under namnet ECMAScript. ECMA är en standardiseringsorganisation som har hand om många olika datorstandarder. ECMAScript och JavaScript är mer eller mindre synonymt. Det vanligaste är dock att kalla det för just JavaScript, speciellt då man kör det i en webbläsare. Standarden har uppdaterats många gånger och det tillkommer ständigt nya finesser i språket. Från och med 2015 har standarden uppdaterats årligen. Dock tar det tid innan alla nya finesser letar sig in i webbläsarna.

Språket blev långt mer användbart när man skapade AJAX, vilket är en metod som möjliggör att webbsidor kan interagera och kommunicera med servrar, t.ex. för att hämta information och visa upp den dynamiskt. De flesta större webbapplikationer använder sig av AJAX, eller den modernare metoden Fetch, t.ex. Facebook, GMail osv...

JavaScript är vanligt förekommande och kan numera köras i mer än webbsidor. Man kan skriva alla typer av applikationer med hjälp av JavaScript, mycket tack vare node.js. Det senare är en fristående JavaScript-"motor" som gör att man kan köra program utanför webbläsaren. Vilket gör att man kan använda samma språk för att koda både i webbläsaren och på serversidan.

JavaScript var länge ett språk som hade dåligt rykte (vilket till viss del stämmer även idag). Dock ändrades detta något när Douglas Crockford publicerade sin bok "JavaScript - the Good Parts". Vilket i mångt och mycket ledde till en renässans för språket.

Kritiken till trots, om man använder JavaScript på ett korrekt vis är det ett mycket kapabelt språk.

Kort om språket

(Här förekommer en del jargong som du kanske inte förstår om du inte programmerat förut, men förhoppningsvis kommer allt att klarna när du gått igenom allt sajtmaterial om JavaScript).

JavaScript är. som hörs på namnet, ett scriptspråk. Scriptspråk är oftast interpreterande, vilket även JavaScript är. Detta betyder att koden körs "direkt" utan att översättas till maskinkod. Man behöver alltså inte något program som översätter koden till datorns egna maskinkod (compiler), utan istället tolkas koden direkt ifrån källkoden (I verkligheten är det inte riktigt så enkelt, JavaScript använder sig av JIT för att göra koden snabbare). Att koden körs direkt gör att det går mycket snabbt att testa sig fram, man kan ändra en rad, klicka på reload och vips så körs koden.

JavaScript är ett svagt typat språk. Det betyder att man inte behöver ange datatyper när man skapar variabler. Istället försöker JavaScript "fatta" vad variabeln är till för och använda den på det mest troliga viset. I ena sekunden kan en variabel ses som den innehåller ett numeriskt tal och i nästa kan den användas som en textsträng. Oftast går det snabbare att utveckla på grund av detta, men det kan även göra vissa typer av buggar mer svårupptäckta.

JavaScript är objektorienterat. Men om du är van med objektorientering ifrån något annat språk, kommer du antagligen inte att känna igen dig. Man använder inte klasser för arv, utan istället använder man något som heter prototyper. Det fungerar dock lika bra som klasser, men man får tänka om lite (från och med ECMAScript 6 har språket även mer eller mindre "normala" klasser, men det är mer vanligt att man använder sig av protyper).

Nästa aktivitet

Grunderna i JavaScript-programmering