JavaScript

Begynnelsen

Den første utgaven av JavaScript ble utviklet i 1995 av programmereren Brendan Eich, som da jobbet hos Netscape. Det første kodenavnet på det nye språket var Mocha, etter det var språket en liten periode kjent som LiveScript, før det kjapt fikk navnet JavaScript. Dette navnet spiller på programmeringsspråket Java, men er på mange måter forvirrende, siden Java og JavaScript har lite annet enn en overfladisk likhet i syntaks til felles. JavaScript har derimot mer til felles med de eldre programmeringsspråkene Self og Scheme, og Eich brukte programmeringsparadigmer fra disse da han designet JavaScript. Det var imidlertid et krav fra ledelsen i selskapet at det nye språket skulle «se ut som Java», og Eich fulgte opp dette på tross av at «hovedingrediensene» i det nye språket var hentet fra Self og Scheme.
Netscape sendte språket til Ecma International for standardisering i november 1996, og den første offisielle spesifikasjonen var kjent som ECMA-26. Denne var for alle praktiske formål det samme som datidens JavaScript. Senere har det blitt slik at den offisielle standarden – kjent som ECMAScript – definerer selve språket, mens JavaScript er en implementasjon av ECMAScript. Forskjellen er likevel mest akademisk, og i dagligtalen brukes de to begrepene om hverandre.

Interaktive nettsider igjennom Ajax

Microsoft kom i 2000 med Ajax-teknologi i sin Internet Explorer, og i tiden som fulgte fikk alle andre nettlesere støtte for dette. I løpet av få år ble JavaScript modent nok til å lage dynamiske og fullstendige webapplikasjoner, der Gmail i 2004 ble det store gjennombruddet. Tidligere var det nødvendig å sende hele nettsiden frem og tilbake mellom nettleseren og serveren slik at alle data måtte lastes på nytt for hver endring, men den type nettsteder som ble popularisert igjennom Gmail og basert på Ajax-arkitekturen kunne klare seg med å bare sende deler av nettsiden mellom klienten og serveren når noe endret seg. Slike nettsteder ble kjent som «enkeltside-applikasjoner» (engelsk single-page applications), og kom for alltid til å forandre hvordan dynamiske nettapplikasjoner ble utviklet.

Popularisering av rammeverk til server- og klientbruk

«JavaScript-revolusjonen» som var blitt satt i gang med Ajax hadde ført til at de ulike nettleserne stadig fikk bedre JavaScript-motorer. Spesielt var V8-motoren til Google Chrome rask, og i 2009 tilpasset programmereren Ryan Dahl denne slik at den også kunne brukes på servere. Dette ble startskuddet til Node.js, som populariserte serverbruk av JavaScript til I/O-intensive applikasjoner.
Den stadig økende kompleksiteten rundt det å bygge større webapplikasjoner gjorde at altomfattende JavaScript-rammeverk også på klientsiden økte i popularitet disse årene. jQuery var et tidlig bibliotek for å forenkle endringer i den såkalte DOMen, men denne hjalp ikke programmereren med å strukturere en større kodebase. I 2009 kom Miško Hevery og Adam Abrons med den første utgaven av rammeverket som senere ble kjent som AngularJS, og dette rammeverket har fått stor utbredelse etter at det ble backet av Google fra 2010. React – først lansert av Facebook i 2011 – har også vokst veldig de senere årene, og har sørget for å popularisere en arkitektur der hele brukergrensesnittet defineres i gjenbrukbare JavaScript-komponenter.

Moderne ECMAScript-utgaver

Pr. mars 2017 finnes det sju utgaver av ECMAScript, med ECMAScript 2016 som den nyeste. De siste gjennomgripende JavaScript-endringene kom i juni 2015, med ECMAScript-standarden kjent som ES6. Det tar imidlertid tid for nettleser-leverandører å implementere støtte for de seneste versjonene, og ES6 og ECMAScript 2016 er dermed i liten grad tatt i bruk for web-formål. Det er femteutgaven ES5 (publisert i juni 2011) som fortsatt fungerer som et slags lingua franca på webben.

Variabler

JavaScript er dynamisk typet, som vil si at datatypen ikke oppgis under deklarering av en variabel (slik som C eller Java).
Datatypen ligger implisitt i verdien som variabelen får. 
x = 23; // tilordner heltallet 23 til x.console.log(x); // skriver ut 23 x = "Hei verden!"; // tilordner ny verdi : Hei verden! med datatypen tekststreng.console.log(x) // skriver ut: Hei verden!