Hvad er JavaScript? Introduktion med Hello World-eksempel
⚡ Smart opsummering
JavaScript er det programmeringssprog, der gør websider interaktive. Denne introduktion forklarer, hvad JavaScriptet er, hvor det kommer fra, hvordan browsere og Node.js udfører det, og hvordan man skriver og kører et første Hello World-script.

Hvad er JavaManuskript?
JavaScript er et programmeringssprog på højt niveau, der tilføjer adfærd til websider. Det er en af de tre kerneteknologier på nettet: HTML leverer strukturen, CSS leverer udseendet, og JavaScriptet leverer interaktionen. Hver gang et søgefelt viser forslag, mens du skriver, en fotokarrusel glider, eller en tilmeldingsformular advarer dig om et manglende felt, JavaScriptet udfører det arbejde i baggrunden.
Diagrammet nedenfor viser, hvordan et script fungerer sammen med markup'en på en almindelig webside.
I det meste af sit liv JavaScript blev beskrevet som et klientside-scriptsprog, fordi det kun kørte i en browser. Denne beskrivelse er nu ufuldstændig. Siden Node.js dukkede op i 2009, har det samme sprog også drevet webservere, kommandolinjeværktøjer, desktopapplikationer og mobilapps. En mere præcis beskrivelse i dag er, at JavaScript er et generelt sprog med en usædvanlig stærk tilstedeværelse i browseren.
De karakteristika, der definerer sproget, er:
- Dynamisk skrevet: En variabel kan indeholde et tal nu og en streng et øjeblik senere, så typer kontrolleres, mens programmet kører.
- Fortolket og just-in-time kompileret: Programmer som V8 i Chrome og Node.js kompilerer ofte udført kode til maskinkode for at opnå hastighed.
- Multiparadigme: Imperative, funktionelle og objektorienterede stilarter understøttes alle.
- Begivenhedsdrevet: Koden reagerer på klik, tastetryk, timere og netværksresponser i stedet for at køre fra top til bund og stoppeping.
- Enkelttrådet med en eventløkke: Langsomt arbejde, såsom et netværksopkald, sættes i kø i stedet for at siden fryser.
💡 Tip: JavaScript og ECMAScript er ikke konkurrerende sprog. ECMAScript er den skrevne specifikation, og JavaScriptet er implementeringen af den specifikation, som browsere og Node.js rent faktisk leverer.
Historie JavaScript
Brendan Eich skabte JavaScript hos Netscape Communications i 1995, hvor den første fungerende prototype blev produceret på cirka ti dage. Internt blev projektet kaldt mokkaDen blev leveret i en Netscape Navigator 2.0 beta som LiveScript i september 1995 og blev omdøbt til JavaScript i december 1995 som en del af en markedsføringsaftale mellem Netscape og Sun Microsystems, virksomheden der ejede Java på det tidspunkt.
At omdøbning er den eneste grund til, at så mange begyndere stadig antager, at JavaScript er en letvægtsudgave af JavaDe to sprog er uafhængige af hinanden i design, ejerskab og runtime. Netscape indsendte sproget til Ecma International i 1996, og den første udgave af ECMA-262-standarden blev udgivet i juni 1997. Tabellen nedenfor viser de milepæle, der er vigtigst, når man læser ældre kode.
| År | Milestone | Hvorfor det betyder noget |
|---|---|---|
| 1995 | Mocha, så LiveScript, og så JavaScript | Sproget er skabt i Netscape af Brendan Eich. |
| 1997 | ECMA-262 første udgave | Sproget får en leverandørneutral skriftlig standard. |
| 2009 | ES5 og den første udgivelse af Node.js | Streng tilstand ankommer, og JavaScriptet undslipper browseren. |
| 2015 | ES6 (ECMAScript 2015) | let-, const-, arrow-funktioner, klasser, moduler og promises tilføjes. |
| 2016 og fremefter | Årlige ECMAScript-udgaver | Mindre funktioner udsendes hver juni i stedet for i sjældne store udgivelser. |
På grund af den årlige udgivelsescyklus ser kode skrevet før 2015 markant anderledes ud end moderne kode. Ældre tutorials bruger var overalt, mens den nuværende kode foretrækker let og const hvornår deklarering af variabler i JavaScript.
Hvad er JavaBruges scriptet til?
JavaScript er ikke længere begrænset til små sidetricks. Den samme syntaks optræder nu fire meget forskellige steder, hvilket er grunden til, at den konsekvent rangerer som et af de mest anvendte sprog i udviklerundersøgelser.
| Miljø | Hvad JavaScriptet gør det der | Typiske værktøjer |
|---|---|---|
| Browserens brugerflade | Håndterer klik, opdaterer siden uden genindlæsning, validerer formularer og tegner diagrammer. | React, Vue, Angular, Svelte |
| Server side | Betjener HTTP-anmodninger, kommunikerer med databaser og bygger REST- eller GraphQL API'er. | Node.js, Deno, Bun, Express |
| Mobile applikationer | bygger Android og iOS-apps fra en enkelt delt kodebase. | Reager Native, Ionic, Kondensator |
| Desktop applikationer | Pakker en webgrænseflade ind i et native vindue med adgang til filsystemet. | Elektron, Tauri |
| Værktøjsfremstilling og automatisering | Samler aktiver, kører testsuiter og driver browsere til end-to-end-testning. | Vite, webpack, Jest, Dramatiker |
Spil, datavisualiseringer, browserudvidelser og små hardwareprojekter er alle også afhængige af det. For en nybegynder er den praktiske konsekvens enkel: den indsats, du bruger på syntaks, overføres nu direkte til serverarbejde, mobilarbejde og testautomatisering senere. Hvis du vil se sproget anvendt på virkelige problemer, skal du arbejde dig igennem et sæt af praktisk JavaEksempler på scriptkode når det grundlæggende er behageligt.
Sådan kører du JavaManuskript?
JavaScriptet udføres ikke af sig selv. Det kræver et værtsmiljø, der indeholder en JavaScript motorChrome og Edge bruger V8, Firefox bruger SpiderMonkey, og Safari bruger JavaScriptCore. Når en browser downloader en HTML-side og finder et script, sender den scriptet til sin browser, som analyserer, kompilerer og kører det.
Det andet værtsmiljø er Node.js, som integrerer den samme V8-motor uden for browseren. Det er sådan, at det identiske sprog kører på en server eller i en terminal. Den praktiske fordel ved JavaScript er det alle moderne browsere understøtter det on Windows, Linux og macOS, så du behøver sjældent at bekymre dig om, hvilken browser en besøgende bruger. Dette er en reel forbedring i forhold til VBScript, som kun nogensinde har virket i Internet Explorer på Windows og er nu udfaset sammen med selve Internet Explorer.
⚠️ Advarsel: browser JavaScript og Node.js JavaScript deler kernesproget, men ikke de omgivende objekter. document og window findes kun i browseren, og require og filsystemmodulerne findes kun i Node.js. Kopiering af kode mellem de to uden kontrol vil give en referencefejl.
Værktøjer du har brug for
Du skal bruge en teksteditor til at skrive kode og en browser for at se resultatet. Notepad++, Visual Studio Code, Sublime Text, og enhver anden editor, du er fortrolig med, vil klare jobbet, selvom en editor med syntaksfremhævning og parentesmatchning vil spare dig for en masse fejlfinding. Enhver nuværende browser fungerer: Google Chrome, Firefox, Microsoft Edgeeller Safari. Der skal ikke købes eller installeres andet end disse to ting.
En enkel JavaScript program
Hvis du holder JavaScriptet er indeholdt i selve HTML-dokumentet, al kode skal være placeret mellem en åbning <script> tag og en lukning </script> tag. Sådan adskiller browseren din kode fra den omgivende markup. Ældre sider angiver også en type attribut, skrevet som <script type="text/javascript">, hvilket var nødvendigt, da der fandtes konkurrerende klientsidesprog som VBScript. Moderne sider udelader det, fordi HTML5 behandler text/javascript som standard. De to versioner nedenfor er funktionelt identiske, og begge er stadig gyldige.
Hej verdenseksempel
Det traditionelle første program viser en besked. Placer følgende markup i en fil med navnet hello.html og åbn den i en browser.
<html>
<head>
<title>My First JavaScript code!!!</title>
<script type="text/javascript">
alert("Hello World!");
</script>
</head>
<body>
</body>
</html>
Output:
A browser dialog box opens containing the text: Hello World!
Bemærk: type="text/javascript" er ikke nødvendigt i HTML5. Følgende kode fungerer på præcis samme måde.
<html>
<head>
<title>My First JavaScript code!!!</title>
<script>
alert("Hello World!");
</script>
</head>
<body>
</body>
</html>
Output:
A browser dialog box opens containing the text: Hello World!
Når en side vokser ud over et par linjer, flyttes scriptet til sin egen .js filen holder markup'en læsbar og lader browseren cache-lagre koden. Forskellene er dækket i detaljer i denne sammenligning af interne og eksterne JavaScript.
Sådan skriver og kører du dit første script
Der er tre praktiske måder at udføre det på JavaScript, og en nybegynder bør prøve alle tre, fordi hver enkelt passer til en forskellig situation.
1. Browserkonsollen. Dette er den hurtigste løsning og kræver slet ingen filer. Åbn en hvilken som helst webside, tryk på F12 (eller Ctrl+Shift+Jeg på Windows og Linux, Cmd+Alternativ+I på macOS), og vælg Konsol tab. Skriv en linje, tryk på Enter, og resultatet vises med det samme. Det er det ideelle sted at teste et enkelt udtryk eller kontrollere, hvad en funktion returnerer.
// Type each line into the browser console and press Enter console.log(2 + 2); console.log("Guru" + 99); console.log(Math.max(4, 12, 7)); console.log(typeof "hello");
Output:
4 Guru99 12 string
Bemærk den anden linje. Tilføjelse af tallet 99 til strengen "Guru" producerer strengen "Guru99" snarere end en fejl, fordi JavaScriptet konverterer automatisk tallet til tekst. Denne opførsel er praktisk og er også en klassisk kilde til begynderfejl.
2. En HTML-fil. Dette er eksemplet med Hello World vist ovenfor. Brug det, når koden skal røre selve siden, for eksempel ved at læse en formularværdi eller ændre et element.
3. Node.js fra terminalen. Installer Node.js, gem koden i en fil med en .js udvidelse, og kør derefter node first-script.jsIntet gengives, så console.log bliver din outputkanal. Dette er den vej, du skal gå, når du vil øve dig på rene sprogfunktioner uden HTML omkring dem.
// first-script.js const language = "JavaScript"; const createdBy = "Brendan Eich"; const releaseYear = 1995; console.log(language + " was created by " + createdBy + " in " + releaseYear + "."); const usedFor = ["Interactive web pages", "Server apps with Node.js", "Mobile apps"]; usedFor.forEach(function (item, index) { console.log(index + 1 + ". " + item); });
Output:
JavaScript was created by Brendan Eich in 1995. 1. Interactive web pages 2. Server apps with Node.js 3. Mobile apps
Dette korte script bruger allerede tre ideer, du vil møde konstant: konstanter deklareret med const, en matrix indeholder en liste over værdier og en callback-funktion sendt til forEachOmskrivning af den samme løkke med en for en erklæring er en nyttig øvelse, når du har studeret sløjfer ind JavaScript.
JavaManuskript vs. Java
Navnene er den største ulykke i programmeringshistorien, og den forvirring, de forårsager, er værd at rydde op i tidligt. JavaScript blev omdøbt fra LiveScript udelukkende af markedsføringsmæssige årsager i 1995, på et tidspunkt hvor Java var den mest omtalte teknologi på nettet. De to sprog blev designet af forskellige personer, i forskellige virksomheder, til forskellige problemer.
| Aspect | JavaScript | Java |
|---|---|---|
| Oprettet af | Brendan Eich hos Netscape, 1995 | James Gosling hos Sun Microsystems, 1995 |
| Typing | Dynamisk og svagt typet | Statisk og stærkt typet |
| Kører videre | Browsermotorer og Node.js | Java Virtual Machine |
| Compilation | Just-in-time kompileret af motoren under kørsel | Kompileret på forhånd til bytecode |
| Objektmodel | Prototypebaseret, med klassesyntaks tilføjet i ES6 | Klassebaseret fra starten |
| Filudvidelse | . Js | .java kompileret til .class |
| Almindelig brug | Web-frontends, API'er, værktøjer | Enterprise-backends, Android, store data |
Den eneste virkelige lighed er, at begge låner krøllet parentes-syntaks fra C. At lære det ene lærer dig ikke det andet, selvom den fælles syntaks gør det andet sprog en smule lettere at læse. Hvis streng typing appellerer til dig, TypeScript tilføjer et statisk tekstlag oven på JavaScript under kompilering ned til almindeligt JavaScript, og forskellene er angivet i dette TypeScript og JavaScriptsammenligning.
Med det grundlæggende på plads er de naturlige næste skridt interaktiv JavaScriptøvelser, derefter variabler og datatyper, efterfulgt af arrays og sløjfer. Efter det, objektorienteret JavaScript forklarer, hvordan objekter, prototyper og klasser passer sammen, og strengformatering dækker den teksthåndtering, du vil bruge i næsten alle scripts.


