Hva er JavaSkript? Introduksjon med Hello World-eksempel

⚡ Smart oppsummering

JavaScript er programmeringsspråket som gjør nettsider interaktive. Denne introduksjonen forklarer hva JavaSkript er, hvor det kom fra, hvordan nettlesere og Node.js kjører det, og hvordan man skriver og kjører et første Hello World-skript.

  • 🌐 Klient og server: JavaSkriptet startet i nettleseren, men kjører nå også på servere via Node.js, Deno og Bun.
  • 🕰️ Opprinnelse: Brendan Eich bygde språket hos Netscape i 1995; det ble kalt Mocha, deretter LiveScript, og deretter JavaManus.
  • 📜 Standard: ECMAScript er den offisielle spesifikasjonen, så alle moderne nettlesere er enige om de samme kjernespråkreglene.
  • 🛠️ Oppsett: En ren tekstredigerer og en hvilken som helst moderne nettleser er nok til å skrive og teste ditt første skript.
  • 🖥️ Konsoll først: Trykk F12, åpne Konsoll-fanen og kjør enkeltlinjer med JavaSkript uten å opprette noen filer.
  • Non Java: Java og JavaSkript deler fire bokstaver og nesten ingenting annet, inkludert typesystemer og kjøretider.
  • Plassering: Plasser skript i skripttagger eller lenke til en ekstern .js-fil for renere og bufrebare sider.

Hva er JavaScript

Hva er JavaManus?

JavaScript er et programmeringsspråk på høyt nivå som legger til atferd på nettsider. Det er en av de tre kjerneteknologiene på nettet: HTML sørger for strukturen, CSS sørger for utseendet, og JavaSkriptet sørger for interaksjonen. Hver gang et søkefelt viser forslag mens du skriver, en bildekarusell glir, eller et registreringsskjema advarer deg om et manglende felt, JavaSkriptet gjør den jobben i bakgrunnen.

Diagrammet nedenfor viser hvordan et skript fungerer ved siden av markupen på en vanlig nettside.

Introduksjon til JavaScript

I mesteparten av livet JavaScript ble beskrevet som et klientsideskriptspråk, fordi det bare kjørte i en nettleser. Den beskrivelsen er nå ufullstendig. Siden Node.js dukket opp i 2009, har det samme språket også drevet webservere, kommandolinjeverktøy, skrivebordsapplikasjoner og mobilapper. En mer nøyaktig beskrivelse i dag er at JavaScript er et generelt språk med en uvanlig sterk tilstedeværelse i nettleseren.

Kjennetegnene som definerer språket er:

  • Dynamisk skrevet: En variabel kan inneholde et tall nå og en streng et øyeblikk senere, slik at typene sjekkes mens programmet kjører.
  • Tolket og just-in-time kompilert: Motorer som V8 i Chrome og Node.js kompilerer ofte utført kode til maskinkode for hastighet.
  • Multiparadigme: Imperative, funksjonelle og objektorienterte stiler støttes alle.
  • Hendelsesdrevet: Koden reagerer på klikk, tastetrykk, tidtakere og nettverksresponser i stedet for å kjøre fra topp til bunn og stoppeping.
  • Enkeltrådet med en hendelsesløkke: sakte arbeid, som for eksempel et nettverksanrop, settes i kø i stedet for at siden fryser.

💡 Tips: JavaScript og ECMAScript er ikke konkurrerende språk. ECMAScript er den skrevne spesifikasjonen, og JavaSkript er implementeringen av den spesifikasjonen som nettlesere og Node.js faktisk leverer.

Historie JavaScript

Brendan Eich opprettet JavaManus hos Netscape Communications i 1995, og produserte den første fungerende prototypen på omtrent ti dager. Internt ble prosjektet kalt MochaDen ble levert i en betaversjon av Netscape Navigator 2.0 som LiveScript i september 1995, og ble omdøpt til JavaScript i desember 1995 som en del av en markedsføringsavtale mellom Netscape og Sun Microsystems, selskapet som eide Java på den tiden.

Javascript Historie

At navneendringer er den eneste grunnen til at så mange nybegynnere fortsatt antar JavaScript er en lettvektsutgave av JavaDe to språkene er ikke relatert til hverandre når det gjelder design, eierskap og kjøretid. Netscape sendte inn språket til Ecma International i 1996, og den første utgaven av ECMA-262-standarden ble publisert i juni 1997. Tabellen nedenfor viser milepælene som er viktigst når man leser eldre kode.

År Milepæl Hvorfor det betyr noe
1995 Mokka, deretter LiveScript, deretter JavaScript Språket er laget i Netscape av Brendan Eich.
1997 ECMA-262 første utgave Språket får en leverandørnøytral skriftlig standard.
2009 ES5 og den første utgivelsen av Node.js Streng modus kommer, og JavaSkriptet forsvinner fra nettleseren.
2015 ES6 (ECMAScript 2015) let-, const-, arrow-funksjoner, klasser, moduler og promises legges til.
2016 og fremover Årlige ECMAScript-utgaver Mindre funksjoner sendes hver juni i stedet for i sjeldne store utgivelser.

På grunn av den årlige utgivelsessyklusen ser kode skrevet før 2015 merkbart annerledes ut enn moderne kode. Eldre veiledninger bruker var overalt, mens gjeldende kode foretrekker let og const når deklarere variabler i JavaScript.

Hva er JavaBrukes skriptet til?

JavaSkript er ikke lenger begrenset til små sidetriks. Den samme syntaksen vises nå på fire svært forskjellige steder, og det er derfor den konsekvent rangeres som et av de mest brukte språkene i utviklerundersøkelser.

Område Hva JavaSkriptet gjør det der Typiske verktøy
Nettlesergrensesnitt Håndterer klikk, oppdaterer siden uten å laste inn på nytt, validerer skjemaer og tegner diagrammer. React, Vue, Angular, Svelte
Serversiden Betjener HTTP-forespørsler, kommuniserer med databaser og bygger REST- eller GraphQL API-er. Node.js, Deno, Bun, Express
Mobilapplikasjoner bygger Android og iOS-apper fra én delt kodebase. Reager Native, Ionic, Kondensator
Desktop applikasjoner Pakker et webgrensesnitt inn i et innebygd vindu med tilgang til filsystemet. Elektron, Tauri
Verktøy og automatisering Samler ressurser, kjører testsuiter og driver nettlesere for ende-til-ende-testing. Vite, webpack, Jest, dramatiker

Spill, datavisualiseringer, nettleserutvidelser og små maskinvareprosjekter er også avhengige av det. For en nybegynner er den praktiske konsekvensen enkel: innsatsen du bruker på syntaks overføres nå direkte til serverarbeid, mobilarbeid og testautomatisering senere. Hvis du vil se språket brukt på virkelige problemer, jobb deg gjennom et sett med praktisk JavaEksempler på skriptkode når det grunnleggende er komfortabelt.

Hvordan løpe JavaManus?

JavaSkriptet kjøres ikke av seg selv. Det trenger et vertsmiljø som inneholder en JavaScript motorChrome og Edge bruker V8, Firefox bruker SpiderMonkey, og Safari bruker JavaScriptCore. Når en nettleser laster ned en HTML-side og finner et skript, sender den skriptet til motoren sin, som analyserer, kompilerer og kjører det.

Det andre vertsmiljøet er Node.js, som bygger inn den samme V8-motoren utenfor nettleseren. Det er slik det identiske språket kjører på en server eller i en terminal. Den praktiske fordelen med JavaManus er det alle moderne nettlesere støtter det on Windows, Linux og macOS, slik at du sjelden trenger å bekymre deg for hvilken nettleser en besøkende bruker. Dette er en reell forbedring i forhold til VBScript, som bare noen gang fungerte i Internet Explorer på Windows og er nå utdatert sammen med selve Internet Explorer.

⚠️ Advarsel: nett~~POS=TRUNC leseren~~POS=HEADCOMP JavaSkript og Node.js JavaSkript deler kjernespråket, men ikke de omkringliggende objektene. document og window finnes bare i nettleseren, og require og filsystemmodulene finnes bare i Node.js. Kopiering av kode mellom de to uten å sjekke vil gi en referansefeil.

Verktøy du trenger

Du trenger en teksteditor for å skrive kode og en nettleser for å se resultatet. Notepad++, Visual Studio Code, Sublime Text, og enhver annen editor du er komfortabel med vil gjøre jobben, selv om en editor med syntaksutheving og brakettmatching vil spare deg for mye feilsøking. Enhver nåværende nettleser fungerer: Google Chrome, Firefox, Microsoft Edgeeller Safari. Ingenting må kjøpes eller installeres utover disse to elementene.

En enkel JavaSkriptprogram

Hvis du holder JavaSkript inne i selve HTML-dokumentet, all koden må sitte mellom en åpning <script> tag og en avslutning </script> tag. Slik skiller nettleseren koden din fra den omkringliggende markupen. Eldre sider angir også en type attributt, skrevet som <script type="text/javascript">, som var nødvendig da konkurrerende klientsidespråk som VBScript eksisterte. Moderne sider utelater det, fordi HTML5 behandler text/javascript som standard. De to versjonene nedenfor er funksjonelt identiske, og begge er fortsatt gyldige.

Hei verden eksempel

Det tradisjonelle første programmet viser en melding. Plasser følgende markup i en fil med navnet hello.html og åpne den i en nettleser.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script type="text/javascript">
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

Utgang:

A browser dialog box opens containing the text:

Hello World!

OBS: type="text/javascript" er ikke nødvendig i HTML5. Følgende kode fungerer på nøyaktig samme måte.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script>
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

Utgang:

A browser dialog box opens containing the text:

Hello World!

Når en side vokser utover noen få linjer, flyttes skriptet til sin egen plass .js filen holder markupen lesbar og lar nettleseren mellomlagre koden. Forskjellene dekkes i detalj i denne sammenligningen av internt og eksternt JavaScript.

Slik skriver og kjører du ditt første manus

Det finnes tre praktiske måter å utføre JavaManus, og en nybegynner bør prøve alle tre fordi hver enkelt passer til en annen situasjon.

1. Nettleserkonsollen. Dette er det raskeste alternativet og krever ingen filer i det hele tatt. Åpne en hvilken som helst nettside, trykk F12 (eller Ctrl+Shift+Jeg på Windows og Linux, Cmd+Tilvalg+I på macOS), og velg Konsoll tab. Skriv en linje, trykk Enter, og resultatet vises umiddelbart. Det er det ideelle stedet for å teste et enkelt uttrykk eller for å sjekke hva en funksjon 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");

Utgang:

4
Guru99
12
string

Legg merke til den andre linjen. Legger til tallet 99 i strengen «Guru" produserer strengen "Guru99” i stedet for en feil, fordi JavaSkriptet konverterer tallet automatisk til tekst. Denne oppførselen er praktisk og er også en klassisk kilde til nybegynnerfeil.

2. En HTML-fil. Dette er Hello World-eksemplet vist ovenfor. Bruk det når koden må berøre selve siden, for eksempel ved å lese en skjemaverdi eller endre et element.

3. Node.js fra terminalen. Installer Node.js, lagre koden i en fil med en .js utvidelse, og kjør deretter node first-script.jsIngenting gjengis, så console.log blir utdatakanalen din. Dette er veien å gå når du vil øve på rene språkfunksjoner uten HTML rundt 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);
});

Utgang:

JavaScript was created by Brendan Eich in 1995.
1. Interactive web pages
2. Server apps with Node.js
3. Mobile apps

Dette korte skriptet bruker allerede tre ideer du vil møte stadig vekk: konstanter deklarert med const, En matrise inneholder en liste med verdier, og en tilbakeringingsfunksjon sendt til forEach. Skrive om den samme løkken med en for uttalelse er en nyttig øvelse når du har studert løkker inn JavaScript.

JavaManus vs. Java

Navnene er den største ulykken i programmeringshistorien, og forvirringen de forårsaker er verdt å rydde opp i tidlig. JavaScript ble omdøpt fra LiveScript utelukkende av markedsføringshensyn i 1995, på et tidspunkt da Java var den mest omtalte teknologien på nettet. De to språkene ble utviklet av forskjellige personer, i forskjellige selskaper, for forskjellige problemer.

Aspekt JavaScript Java
Laget av Brendan Eich hos Netscape, 1995 James Gosling hos Sun Microsystems, 1995
Typing Dynamisk og svakt skrevet Statisk og sterkt skrevet
Kjører på Nettlesermotorer og Node.js Ocuco Java Virtuell maskin
Compilation Just-in-time kompilert av motoren under kjøring Kompilert på forhånd for å bytekode
Objektmodell Prototypebasert, med klassesyntaks lagt til i ES6 Klassebasert fra starten av
Filutvidelse . Js .java kompilert til .class
Vanlig bruk Webgrensesnitt, API-er, verktøy Enterprise-bakender, Android, stordata

Den eneste virkelige likheten er at begge låner krøllparentessyntaks fra C. Å lære det ene lærer deg ikke det andre, selv om den delte syntaksen gjør det andre språket litt enklere å lese. Hvis streng syntaksping appellerer til deg, TypeScript legger til et statisk typelag oppå JavaSkript under kompilering ned til vanlig JavaManus, og forskjellene er angitt i dette TypeScript og Javaskriptsammenligning.

Med det grunnleggende på plass, er de naturlige neste stegene interaktiv JavaSkriptøvelser, deretter variabler og datatyper, Etterfulgt av arrays og løkker. Etter det, objekt orientert JavaScript forklarer hvordan objekter, prototyper og klasser passer sammen, og strengformatering dekker teksthåndteringen du vil bruke i nesten alle skript.

Spørsmål og svar

ECMAScript er den skriftlige standarden, publisert som ECMA-262, som definerer syntaksen og innebygde objekter. JavaSkript er den fungerende implementeringen av den standarden som leveres av nettleserleverandører og Node.js. Versjonsnavn som ES6 refererer til utgaver av standarden.

Begge. Kildekoden leveres som ren tekst og leses av motoren, men motorer som V8 og SpiderMonkey kompilerer ofte utførte funksjoner til maskinkode i riktig tid. Resultatet oppfører seg som et tolket språk med nesten kompilert hastighet.

Vanlige årsaker er en manglende lukkeskripttagg, feil sti til den eksterne filen, en skrivefeil som genererer en syntaksfeil, eller et skript som kjører før elementet det er rettet mot, finnes. Åpne Konsoll-fanen for å lese den nøyaktige feilen.

Interne skript holder seg fint i noen få linjer mens du lærer. Flytt til en ekstern .js-fil så snart koden brukes på nytt på mer enn én side, fordi nettleseren da kan mellomlagre den og markupen forblir lesbar.

De kan produsere fungerende utdrag raskt, men de blander også nettleserbaserte og Node.js-baserte API-er, og av og til finner de opp metoder. Kjør alle forslag, les konsollfeilene selv, og behandle resultatet som et utkast i stedet for et ferdig svar.

Den bygger chatgrensesnittet, strømmer modellsvar token for token og kaller modell-API-er fra en Node.js-backend. Biblioteker som TensorFlow.js og ONNX Runtime Web kjører også mindre modeller direkte i nettleseren.

Oppsummer dette innlegget med: