Operatorer i JavaScript

Lær om sammenlignings-, aritmetiske og logiske operatorer i JavaScript. Gratis video med praktiske eksempler.

Videoforhåndsvisning

Opprett konto for å se video

Det er helt gratis og tar under 30 sekunder

Opprett gratis kontoHar du konto? Logg inn

Du har en variabel med verdien 10 og en annen med verdien 3. Hvordan finner du ut hva de til sammen blir? Hvordan sjekker du om den ene er større enn den andre? Og hvordan kombinerer du to betingelser i en if-setning? Alt dette gjør du med operatorer. Operatorer i JavaScript er symbolene som lar deg utføre beregninger, sammenligne verdier og kombinere logiske uttrykk.

Aritmetiske operatorer: JavaScript som kalkulator

De aritmetiske operatorene er de du kjenner fra matematikken. Pluss (+), minus (-), gange (*) og dele (/) fungerer nøyaktig som du forventer.

let resultat = 5 + 5 * 6 - 2

Svaret her er 33, ikke 58. JavaScript følger vanlig matematisk rekkefølge: gange og dele utføres før pluss og minus. Først 5 * 6 = 30, deretter 30 + 5 = 35, og til slutt 35 - 2 = 33. Vil du endre rekkefølgen, bruker du parenteser: (5 + 5) * (6 - 2) gir 40.

En operator mange ikke kjenner er modulus (%). Den gir resten etter en divisjon. 10 % 3 gir 1, fordi 3 passer inn tre ganger i 10 med 1 til overs. Modulus er spesielt nyttig for å sjekke om et tall er partall eller oddetall: tall % 2 gir alltid 0 for partall og 1 for oddetall.

Forkortelser som sparer tastetrykk

Når du vil legge til et tall på en eksisterende variabel, kan du skrive det kort. I stedet for nummer = nummer + 2 kan du skrive nummer += 2. Det fungerer med alle aritmetiske operatorer: -=, *=, /= og %=.

Å øke eller minske en variabel med 1 er så vanlig at JavaScript har en enda kortere form. nummer++ øker verdien med 1. nummer-- minsker den med 1. Disse operatorene brukes spesielt mye i løkker, der du teller gjennom en serie verdier.

Sammenligningsoperatorer for logiske tester

Sammenligningsoperatorer sammenligner to verdier og returnerer enten true eller false. De er grunnmuren i if-setninger, der programmet tar beslutninger basert på resultatet.

  • === (strengt lik) sjekker om verdi og datatype er like
  • !== (strengt ulik) sjekker om verdi eller datatype er forskjellig
  • > (større enn) og < (mindre enn)
  • >= (større enn eller lik) og <= (mindre enn eller lik)

Resultatet av en sammenligning er alltid en boolean, altså true eller false. Du kan lagre resultatet i en variabel: let erVoksen = alder >= 18. Variabelen erVoksen inneholder nå enten true eller false, avhengig av verdien i alder.

Strengt lik vs. løst lik

JavaScript har både == (løst lik) og === (strengt lik). Forskjellen er at == konverterer datatyper før den sammenligner, mens === krever at begge sider har samme type.

5 == "5" gir true. JavaScript konverterer strengen "5" til tallet 5 og finner at de er like.

5 === "5" gir false. Den ene er et tall, den andre er en streng. Forskjellig type, altså ulike.

Denne automatiske typekonverteringen skaper mange uventede feil. Bruk alltid === og !==. Det er tryggere og mer forutsigbart. MDN anbefaler det samme. Det eneste tilfellet der == kan være nyttig er å sjekke om en verdi er null eller undefined samtidig, men som nybegynner trenger du ikke å tenke på det.

Logiske operatorer: kombinere betingelser

Noen ganger trenger du å sjekke flere betingelser samtidig. Da bruker du logiske operatorer i JavaScript.

&& (og) krever at begge betingelsene er sanne. if (dag === "fredag" && klokke >= 16) er bare true hvis begge delene stemmer. Er det fredag men klokken er 12, er hele uttrykket false.

|| (eller) krever at minst en av betingelsene er sann. if (dag === "fredag" || dag === "lordag" || dag === "sondag") er true hvis noen av dagene matcher. Du kan lenke så mange eller-betingelser du vil.

! (ikke) snur en boolsk verdi. !true blir false. !false blir true. Den er nyttig for å invertere en betingelse: if (!erInnlogget) betyr "hvis brukeren ikke er innlogget".

Pluss-operatoren og tekst

Pluss-operatoren har en dobbeltrolle i JavaScript. Mellom to tall adderer den. Mellom to strenger setter den dem sammen (string concatenation). "Hei" + " " + "verden" gir "Hei verden".

Problemet oppstår når du blander tall og tekst. 5 + "10" gir ikke 15 men "510". JavaScript ser at en av verdiene er en streng, konverterer tallet til tekst, og limer dem sammen. Denne oppførselen er kilde til mange nybegynnerfeil. Når regnestykket ditt gir et uventet resultat, sjekk datatypene med typeof. Kanskje en av verdiene er en streng som ser ut som et tall.

Operatorer JavaScript i praksis

Et realistisk eksempel som kombinerer flere operatortyper: du har en nettbutikk og vil gi gratis frakt hvis kunden handler for over 500 kroner eller er premium-medlem.

let totalPris = 350

let erPremium = true

let gratisFrakt = totalPris > 500 || erPremium

Her bruker du en sammenligningsoperator (>) og en logisk operator (||). Variabelen gratisFrakt blir true fordi erPremium er true, selv om totalPris er under 500. Denne typen logikk bruker du konstant når du bygger nettsider og applikasjoner.

Neste steg

Operatorer gir deg verktøyene til å beregne og sammenligne. For å bruke dem i praksis trenger du if og else, der sammenligninger og logiske uttrykk styrer programmets oppførsel. Trenger du en oppfriskning på de forskjellige datatypene som operatorene jobber med, kan du lese om variabler i JavaScript.

Videoen til denne artikkelen er hentet fra kurset JavaScript for nybegynnere med kursholder Lars Vidar Nordli. Kurset dekker operatorer i JavaScript grundig og viser hvordan du bruker dem i prosjekter, fra enkle beregninger til komplekse betingelser med løkker og funksjoner.