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.

  • 🌐 Klient og server: JavaScriptet startede inde i browseren, men kører nu også på servere via Node.js, Deno og Bun.
  • 🕰️ Oprindelse: Brendan Eich udviklede sproget hos Netscape i 1995; det hed Mocha, derefter LiveScript, og så JavaManuskript.
  • 📜 Standard: ECMAScript er den officielle specifikation, så alle moderne browsere er enige om de samme kernesprogregler.
  • 🛠️ Opsætning: En almindelig teksteditor og enhver moderne browser er nok til at skrive og teste dit første script.
  • 🖥️ Konsol først: Tryk på F12, åbn fanen Konsol, og kør enkelte linjer med JavaScript uden at oprette nogen filer.
  • Ikke Java: Java og JavaScript deler fire bogstaver og næsten intet andet, inklusive typesystemer og runtime.
  • Placering: Placer scripts i script-tags, eller link en ekstern .js-fil for at få renere sider, der kan caches.

Hvad er JavaScript

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.

Introduktion til JavaScript

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.

Javascript Historie

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.

Ofte Stillede Spørgsmål

ECMAScript er den skriftlige standard, udgivet som ECMA-262, der definerer syntaksen og de indbyggede objekter. JavaScriptet er den fungerende implementering af den standard, der leveres af browserleverandører og Node.js. Versionsnavne som ES6 refererer til udgaver af standarden.

Begge. Kildekoden leveres som almindelig tekst og læses af motoren, men motorer som V8 og SpiderMonkey just-in-time kompilerer ofte udførte funktioner til maskinkode. Resultatet opfører sig som et fortolket sprog med næsten kompileret hastighed.

De sædvanlige årsager er et manglende lukkescript-tag, en forkert sti til den eksterne fil, en tastefejl, der udløser en syntaksfejl, eller et script, der kører, før det element, det er målrettet mod, findes. Åbn fanen Konsol for at læse den nøjagtige fejl.

Interne scripts er fine i et par linjer, mens du lærer. Skift til en ekstern .js-fil, så snart koden genbruges på mere end én side, fordi browseren så kan cache den, og markup'en forbliver læsbar.

De kan hurtigt producere fungerende snippets, men de blander også browser-only og Node.js-only API'er og opfinder lejlighedsvis metoder. Kør alle forslag, læs konsolfejlene selv, og behandl outputtet som et udkast i stedet for et færdigt svar.

Den bygger chatgrænsefladen, streamer modelsvar token for token og kalder model-API'er fra en Node.js-backend. Biblioteker som TensorFlow.js og ONNX Runtime Web kører også mindre modeller direkte i browseren.

Opsummer dette indlæg med: