Typer og operatorer
Dokumentasjon fra MDN:
Datatyper
JavaScript har syv datatyper:
boolean
null
undefined
number
string
symbol
Object
Særlig bruken av null og undefined er en kilde til forvirring i JavaScript-verdenen.
Vi kan bruke typeof-operatoren for å sjekke type:
Objekter kan ses på som en samling av key-value-par.
I JS kan man bare slenge på og ta bort et key-value-par som man ønsker, runtime. Dette skiller seg ganske mye fra kompilerte språk som feks Java, hvor man typisk først må lage en klasse og definert at objekter av denne klassen vil ha et sett med attributter. Vi kan sette verdier på tre måter: når vi initialiserer objektet, og ved å aksessere gjennom nøkler. Dersom vi bruker en nøkkel som ikke finnes i objektet fra før, vil det legges til:
Denne fleksibiliteten i JavaScript gjør det lett å referere til felter som ikke finnes, noe som raskt kan skape trøbbel. Husk også at slike feil ikke fanges opp før de eksekveres i nettleseren, med mindre vi bruker verktøy som legger til kompilering med typesjekk.
Truthy and falsy
På MDN sine sider finner dere dokumentasjon for alt av operatorer som finnes i Javascript. Men operatorene for sammenlikning er verdt litt ekstra oppmerksomhet, fordi JS i en boolsk kontekst kan sjekke om en verdi er truthy eller falsy. Hvis man i Java sjekker om to ting er like med ==
, er det en strikt likhetssjekk. I JavaScript, derimot, kan uttrykket bli evaluert til truthy og passere i en if-sjekk der vi egentlig forventer å få false
tilbake. Derfor bør man i sammenlikninger bruke strict equal og strict not equal-operatorene ===
og !==
for å unngå logiske feil under kjøring.
Destrukturering
Fra andre programmeringsspråk er man gjerne vant med å aksessere variabler og funksjoner på et objekt med dot-notasjon:
I stedet for å dotte oss til et attributt på et objekt, kan vi bruke destructuring assignment. Dette kan vi bruke både for arrays og objekter, men kan være særlig hendig for å hente ut verdier fra sistnevnte:
Oppgaver
Last updated