Grunnleggende JavaScript
- JavaScript er brukt for å legge til interaktivitet til en nettside.
- JavaScript er verdens mest brukte programmeringsspråk.
- JavaScript brukes ofte sammen med HTML og CSS, men kan også bli brukt i andre sammenhenger.
JavaScript brukes eksempelvis til å utføre en oppgave når en knapp blir trykket inn, eller til å hente informasjon om klokken, for å endre på HTML-elementer, og mye mer. Med JavaScript kan du til og med lage et helt spill, eller animere 3D objekter.
Hvordan bruke JavaScript?
Det finnes i hovedsak to måter å legge JavaScript på en HTML-side:
Intern JavaScript
Intern JavaScript er lagt i <script>
-elementet som regel i slutten av <body>
-elementet, men kan også legges i <head>
-elementet.
Eksempel
<!DOCTYPE html>
<html>
<head> </head>
<body>
<p>Hei</p>
<script>
let x = 2;
</script>
</body>
</html>
Ekstern JavaScript
Ekstern JavaScript, er mer oversiktlig, fordi all JavaScript-koden kan legges i en eller flere egne filer.
Disse filene kan så lenkes til HTML-dokumentet ved å legge til attributten src=""
til <script>
-elementet.
Alle JavaScript-filene som er lagt til i samme HTML-dokumentet har tilgang til de globale funksjonene i hverandre.
Eksempel
<!DOCTYPE html>
<html>
<head> </head>
<body>
<p>Hei</p>
<script src="skript.js"></script>
</body>
</html>
Nøkkelord
Alle programmeringsspråk har noen nøkkelord som har en spesifikk oppgave, en del av disse bør du vite om, slik at du ikke møter på konflikter med variabel-navn.
Variabler
En variabel er en beholder for en verdi. Denne verdien kan endres, og brukes flere steder i koden. Hvor du kan bruke en variabel, avhenger av hvor den er definert. Dette kalles scope.
Opprette variabler
Det fins tre måter å lage en variabler på:
var
: Tidligere den eneste måten å lage en variabel. Denne bør du ikke bruke lenger.let
: Denne brukes for å lage en variabel som kan re-defineres senereconst
: Denne brukes for å lage en variabel som ikke kan re-defineres senere
Syntaksen for å lage en variabel er:
let / const / var
variabelnavn
= verdi
Eksempel
let x = 2;
const y = "ola nordmann";
// re-definer variabel:
x = 3;
x = "hei";
Hvilken verdi tror du y
har?
- Kode
- Svar
const x = 4;
const y = x * 2;
y = 8
4 * 2 = 8
Svaret er 8. Fordi symbolet *
betyr multiplikasjon. Og JavaScript regner det ut.
Hvilken verdi tror du b
har?
- Kode
- Svar
const a = 5;
const b = a + "1";
b = 51
5 + "1" = "51"
Svaret er 51. Hvorfor det?
Kanskje la du merke til at 1-tallet har apostrofer. Da leser JavaScript det som tekst, og legger sammen med +
som om det er tekst.
String
En string er en tekst. Den kan inneholde bokstaver, tall, symboler, og mellomrom.
const tekst = "Hei, jeg er en tekst";
const tekst2 = `Her er forrgje tekst: ${tekst}`;
Det fins mange funksjoner du kan bruke på en string. Her er noen eksempler:
// Hente ut en del av teksten:
const delAvTekst = tekst.substring(0, 3); // = "Hei"
// Hente ut lengden på teksten:
const lengde = tekst.length; // = 20
// Gjøre om til store bokstaver:
const storTekst = tekst.toUpperCase(); // = "HEI, JEG ER EN TEKST"
// Gjøre om til små bokstaver:
const litenTekst = tekst.toLowerCase(); // = "hei, jeg er en tekst"
Husk at en string er en tekst, og ikke et tall. Hva tror du verdien til verdi
er?
- Kode
- Svar
const tall = 2;
const tekst = "2";
const verdi = tall + tekst;
verdi = 22
2 + "2" = "22"
Svaret er 22, siden når du legger sammen en tekst og et tall, blir tallet omgjort til tekst. Og hvis du legger sammen to tekster, blir de satt sammen.
const test = "hei" + "22"; // = "hei22"
Nummer
Et nummer er et tall. Det kan være et heltall, eller et desimaltall.
const tall = 2;
const tall2 = 2.5;
Her er noen eksempler av operasjoner du kan gjøre med tall:
// Legge sammen to tall:
const sum = tall + tall2; // = 4.5
// Trekke fra to tall:
const differanse = tall - tall2; // = -0.5
// Multiplisere to tall:
const produkt = tall * tall2; // = 5
// Dele to tall:
const kvotient = tall / tall2; // = 0.8
// Hente ut resten av en divisjon:
const rest = tall % tall2; // = 2
Array
En array er en liste som kan inneholde ulike verdier. Her er et eksempel:
const liste = ["a", "b", "c", 1, 2, 3];
Det går an å hente ut data fra en array, ved å bruke tall for en indeks.
Hva tror du verdien til verdi
er?
- Kode
- Svar
const verdi = liste[1];
verdi = b
JavaScript, og de fleste andre programmeringsspråk starter å telle på 0, ikke 1. Derfor får vi verdien fra plassering nr. 2 i listen.
Objekt
Du kan også lage et objekt, som kan holde data på en mer oversiktlig måte:
let ola = {
fornavn: "Ola",
etternavn: "Nordmann",
alder: 22,
søsken: ["Lise", "Per"],
};
Her kan du hente verdiene med punktum (.), og bruke dem andre steder:
const navn = `${ola.fornavn} ${ola.etternavn}`;
Funksjoner
For å organisere logikken på en oversiktlig måte brukes funksjoner.
Se for deg en spesiallaget maskin, der du kan putte en ting inn, så gjør maskinen jobben sin og du får en ny ting ut.
Eller hvis du har brukt Excel, kjenner du nok til =SUM()
funksjonen, den fungerer litt på samme måte.
For å lage en funksjon bruker du nøkkelordet function
, etterfølgt av et valgfritt navn som beskriver oppgaven til funksjonen, og deretter parentes ()
, som du kan hente verdier fra.
Til slutt er all logikken i en funksjon samlet inne i krøllparenteser {}
. Verdien kan sendes tilbake ved hjelp av nøkkelordet return
.
Eksempel
function multiplisere(x, y) {
let sum = x * y;
return sum;
}
Den samme funksjonen kan også skrives til en variabel med =>
symbolet, det fører blant annet til at verdien returneres uten å bruke nøkkelordet return
:
const multiplisere = (x, y) => x * y;
// eventuelt:
const multiplisere_alt = (x, y) => {
return x * y;
};
En variabel kan bruke denne funksjonen. Hva tror du verdien til verdi
er?
- Kode
- Svar
let tall = 9 + 1;
const verdi = multiplisere(tall, 5);
verdi = 50
10 * 5 = 50
Svaret er 50. De to tallene 10 og 5, ble sendt inn i funksjonen, kalkulert, og sendt tilbake.
Samhandle med HTML
Når en nettside lastes inn, lager nettleseren en datamodell av strukturen kalt Document Object Model, forkortet DOM. Dette gir JavaScript muligheten til å samhandle med, og endre innholdet på en nettside på en standardisert måte.
Her har vi en enkel liste i HTML:
<ul class="liste">
<li>1</li>
<li>2</li>
<li id="nr3">3</li>
</ul>
For å hente hele listen fra DOM, bruker du objektet document
, og skriver følgende i JavaScript:
let liste = document.querySelector("ul");
querySelector
er en funksjon i DOM der vi kan sende inn en CSS selector. Den gir oss tilbake et element som matcher selectoren oppgitt.
Her er flere eksempler:
let tredjeElement = document.querySelector("#nr3");
let liste = document.querySelector(".liste");
let alleListeElementer = liste.querySelectorAll("li");
Her brukte vi querySelectorAll
for å hente alle <li></li>
elementer under listen vår. Alle elementene ble returnert som en array.
Vi kan nå bruke JavaScript til å gå over alle elementene og hente og endre tallene:
alleListeElementer.forEach((listeElement) => {
let tall = Number(listeElement.textContent);
listeElement.textContent = tall * 2;
});
Nå vil listen se slik ut:
- 2
- 4
- 6
La oss fjerne det første elementet, og legge til ett nytt element i listen, ved bruk av de innebygde funksjonene remove()
og append()
:
alleListeElementer[0].remove();
const nyttElement = document.createElement("li");
nyttElement.textContent = "Hei";
liste.append(nyttElement);
Test deg selv
Nå er du klar for å prøve deg selv. Lag en TODO-liste, ved bruk av HTML og JavaScript, og gjerne bruk CSS til å gjøre den litt fin.
Dette skal du ha med:
- En liste hvor du kan krysse av og fjerne ting.
- En
input
hvor du kan skrive tekst. - En Legg til kapp for å legge til ting i listen.
Ekstra
- Vis hvor mange prosent av listen som er fullført.
- Legg til knapper for å krysse av alt, og fjerne alt.
Oppsummering
Nå har du lært grunnleggende JavaScript. Det er enda mye å lære, men alle må starte et sted. Du lærer best av å gjøre det selv, så finn på noe kult eller nyttig å lage, og søk på nettet hvis du sitter fast.
Kompetansetest
Hva brukes JavaScript hovedsaklig til?