Intro

En ting som nevnes i kurset pÄ Mimo er at linjer med kode er bare instruksjoner som dataen skal fÞlge. SÄ nÄr vi kjÞrer koden spÞr vi bare dataen om Ä fÞlge alle instruksjonene vi har gitt den. Derfor er det ogsÄ viktig Ä tenke pÄ rekkefÞlgen som instruksjonene (koden) skrives i.

Det vil si at vi ogsÄ mÄ definere variablene fÞr verdien skal vises fram.

Hva er Console.log?

For Ä fÄ dataen til Ä vise fram en verdi sÄ gir vi instruksjonen console.log ("Heisann verden!");. Du kan altsÄ skrive hva du vil der, helt uten Ä knytte den til annen info i koden din.

Samtidig kan du ogsĂ„ bruke den til Ă„ vise verdien av variabler – console.log(KILIMANJARO_HEIGHT); og da vil du fĂ„ verdien av variabelen (5895 meters) ikke navnet til selve variabelen (KILIMANJARO_HEIGHT).

Men hvorfor vil man vise verdien i konsollen?

Den informasjonen vises i et omrÄde som kalles konsollen, som bare er et omrÄde som viser output.

Hvorfor bruke javascript i det hele tatt?

SÄvidt jeg har forstÄtt brukes det ofte for Ä gjÞre noe mer dynamisk. Da trenger man riktignok Ä huske informasjon for Ä kunne vise eller lagre det, og det er derfor det finnes variabler. Da jeg tok et Javascript-kurs gjennom Mimo sÄ sammenligna de det med Ä flytte pÄ esker. For pÄ samme mÄte som med en pappeske sÄ har variabler innhold av noe slag, og navn som sier hva som er pÄ innsida.

let og const er det som brukes for Ă„ lage variabler. Som i:

let
const

NĂ„r du navngir en variabel sĂ„ mĂ„ det vĂŠre ett sammenhengende ord, ikke noe mellomrom. Dersom du derimot vil bruke to ord sammensatt til ett sĂ„ kan du skille dem ved Ă„ bruke stor bokstav i det andre ordet – epostAdresse. Artig nok kalles det der camel case, fordi det blir en slags pukkel midt i det sammensatte ordet. BĂžr nevnes at om du setter sammen navnet av to, tre, fire ord eller flere sĂ„ skal alle ordene utenom det fĂžrste ha stor forbokstav, eller pukkel, om du vil.

For Ä forstÄ hva som er inni en variabel sÄ er det viktig Ä navngi variabelen pÄ en beskrivende mÄte. Det vil si at du heller kaller variabelen epostAdresse i stedet for e.

Hva kan en variabel vĂŠre?

En variabel kan ogsĂ„ inneholde nummer, som kan vĂŠre spesielt nyttig hvis du har flere variabler som ligner pĂ„ hverandre i innhold – adresse1, adresse2 osv.

Hvordan bruker du en variabel?

For Ă„ gi variabelen en verdi av noe slag sĂ„ bruker vi erlik-tegnet =, for Ă„ indikere hva variabelen inneholder – const city = "Chicago";. Bare husk Ă„ runde av med en semikolon for Ă„ kunne si deg ferdig.

Verdien som lagres kalles for en string. De mĂ„ alltid stĂ„ mellom to anfĂžrselstegn, som i eksempelet over – "Chicago". Mellom anfĂžrselstegnene kan du slĂ„ deg lĂžs med bĂ„de bokstaver, tall og symboler, til og med mellomrom!

let sideprosjekt = "lĂŠre Javascript";

Forskjellen mellom const og let

NĂ„r vi skal lage, eller deklarere en variabel, sĂ„ bruker vi altsĂ„ const og let. const er forkorta fra “constant” (konstant), og brukes for variabler som har verdier som ikke skal endre seg. Som f. eks: const denmarkCapital = "Copenhagen";

Om du faktisk prĂžver Ă„ endre pĂ„ verdien til en konstant variabel sĂ„ fĂ„r du altsĂ„ en feilmelding (“TypeError: Assignment to constant variable”).

const height = "180";
height = "175";

Derimot om du bruker let sÄ kan du endre pÄ verdien (uten Ä fÄ feilmelding):

let height = "180";
height = "175";

Legg merke til at du skal bruke let-ordet fĂžrst, nĂ„r du skal definere variabelen til Ă„ starte med. NĂ„r du skal endre verdien derimot sĂ„ skriver du kun navnet etterfulgt av erlik-tegnet (=) og den nye verdien – height = "175";, uten let-ordet.

Detaljert bruk av let-variabler

Du kan endre verdien pÄ variabelen sÄ mange ganger du vil. Og hvis du har behov for det kan du til og med si height = BIRTHDAY; for Ä gi height-variabelen den samme verdien som BIRTHDAY-variabelen.

Med det sagt sĂ„ spiller rekkefĂžlgen en viktig rolle her. For hvis du har endra verdien av variabelen din sĂ„ er det den siste endringen som vil gjelde. Systemet “glemmer” pĂ„ en mĂ„te den forrige verdien. Her har du et bittelitt mer avansert eksempel som viser viktigheten av rekkefĂžlgen:

const number1 = 3;
const number2 = 4;
let number3 = 10;
number3 = number1 + number2;

Siden det stÄr let number3 = 10 sÄ skulle du jo da tro at verdien av number3-variabelen var 10, men siden vi endrer verdien ved Ä skrive number3 = number1 + number2 sÄ blir det heller resultatet av verdiene deres. Og siden de er definert som nummer, og ikke en streng (med anfÞrselstegn) sÄ blir svaret 3 + 4 = 7.

Hvordan skille mellom const og let-variabler?

Én mĂ„te du kan gjĂžre det tydelig i koden din hva som er en const-variabel, og hva som er en let-variabel er ved Ă„ bruke store bokstaver pĂ„ const-variablene:

const BIRTHDAY = 20/03/1657

Dersom du har en const-variabel med mer enn ett ord sĂ„ kan du ikke lenger bruke “camelcase”-grepet, ved Ă„ ha en stor forbokstav pĂ„ ord nummer 2/3/4 ogsĂ„ videre. Da kan du heller bruke det som kalles “snake_case”, hvor du skiller ordene med en understrek:

const KILIMANJARO_HEIGHT = "5895 meters";

Det anbefales Ä bruke const som default, nÄr du lager variabler, men nÞyaktig hvorfor er jeg neimen ikke sikker pÄ.

Hvorfor anbefales det Ă„ bruke const som default?

Expression

NĂ„r du legger sammen “string values” sĂ„ kalles det en “expression” fordi det lager en enkelt “string value”.

Men jeg veit ikke hva det egentlig vil si Ă„ lage en enkelt "string value" đŸ€”

For Ä se resultatet av en expression sÄ kan du bruke console.log()-instruksen for Ä vise verdien:

const numberOfFollowers = "55";
console.log ("Followers:"+numberOfFollowers);

Aha! Grunnen til at du vil bruke expressions er for Ă„ kombinere en variabel og en verdi, f. eks hvis du har det tilfellet her:

const label = "Name:" + "Joe";

SĂ„ vil verdien du sitter igjen med vĂŠre “Name:Joe”, og pĂ„ den mĂ„ten har du kombinert bĂ„de en variabel og en verdi til Ă©n samla verdi (eller “string value”).

En ting som er verdt Ă„ nevne her er at nĂ„r du legger sammen verdier gjennom pĂ„ den mĂ„ten sĂ„ blir det uten mellomrom, sĂ„ det mĂ„ du huske Ă„ legge inn i verdien din – Joe , i stedet for bare Joe.

Expressions vil sÄnn sett vÊre veldig nyttig nÄr du skal vise informasjon som kan endre seg, etterfulgt av noe mer statisk, for eksempel:

const numberOfLikes = "40 ";
console.log(numberOfLikes + "likes");

Resultatet av det da blir 40 likes.

En alternativ mĂ„te Ă„ legge til mellomrom pĂ„ kan vĂŠre Ă„ legge til et mellomrom mellom to anfĂžrselstegn – " ", som du kan se i eksempelet under:

const wonder = "Wonder";
const woman = "Woman";
console.log(wonder + " " + woman);

Values

Du har ulike values, eller verdier, innen Javascript:

  1. Udefinert: Representerer en uinitialisert eller ikke-eksisterende verdi.
  2. Null: Representerer fravĂŠret av en hvilken som helst objektverdi.
  3. Boolean: Representerer en logisk entitet av enten ï»żtrue eller ï»żfalse.
  4. Number: Representerer numeriske verdier. Inkluderer heltall og desimaltall.
  5. String: Representerer tekstdata som er innrammet med enten enkeltfnutter (ï»żâ€™) eller dobbeltfnutter (ï»żâ€).
  6. Symbol: Representerer unike og uforanderlige verdier som kan brukes som objektegenskaper.
  7. Object: Representerer en samling av nĂžkkel-verdi-par eller egenskaper.
  8. Array: Representere en ordnet liste av verdier lagret innenfor firkantede klammer (ï»ż[]).
  9. Function: Representerer en gjenbrukbar kodeblokk som utfĂžrer en spesifikk oppgave.
  10. Date: Representerer et spesifikt tidspunkt.
  11. RegExp: Representerer et regulĂŠrt uttrykk brukt for mĂžnstergjenkjenning.
  12. Error: Representerer en feilobjekt som kan kastes eller fanges.

true

Nummer

Nummer trenger ikke Ă„ ha anfĂžrselstegn rundt seg. Det betyr at du kan skrive const numberOfLikes = 5;.

Du kan faktisk ta det her lenger og regne ut greier, ved Ă„ skrive:

const percent = 0.5*100;
console.log(percent);

Da vil du resultatet bli 50 i “Console output”.

Dersom du skriver tallene pÄ samme mÄte som en hvilket som helst annen verdi, altsÄ mellom to anfÞrselstegn, sÄ vil du ikke kunne regne ut pÄ samme mÄte.

const temperature = "3" + "1";
console.log(temperature);

Resultatet her blir ikke da 4, men heller 31, siden tallene kun listes opp i rekkefÞlge, de regnes ikke ut pÄ grunn av anfÞrselstegnene.

Lagre verdier i en variabel

Dersom jeg ville regna ut hvor mange artikler jeg har skrivi pÄ i det siste, bÄde de jeg har publisert, og utkastene mine sÄ kunne jeg skrivd:

const drafts = 4;
const published = 16;
const total = drafts + published;
console.log("Articles written: " + total);

Resultatet av det blir da Articles written: 20. Det er kult.

True or false?

True/false er spesielle verdier innenfor Javascript. True/False er altsÄ ikke en streng fordi du bruker den uten anfÞrselstegn. Det vil si at "true" er en streng, nettopp pÄ grunn av anfÞrselstegnene, mens true er en spesiell verdi.

True

True brukes nÄr du skal sjekke om noe er av eller pÄ for eksempel:

console.log("Subscribed?");
console.log(true);

Resultatet da blir Lights on? true.

Du kan ogsĂ„ lagre true i en variabel, pĂ„ samme mĂ„te som en streng eller et nummer, men jeg veit neimen ikke hvorfor du vil gjĂžre det ennĂ„ đŸ€”

const correct = true;
console.log(correct);

Resultatet da blir true.

False

Som du sikkert forventa deg nÄ sÄ fungerer denne altsÄ pÄ samme mÄte som true, men har motsatt virkning.

Advanced true/false

Dersom du bruker et utropstegn foran truesĂ„ resulterer det i det motsatte. Utropstegnet fungerer da som en sĂ„kalt “negation operator” som gjĂžr verdien til den motsatte – console.log(!true); blir altsĂ„ false đŸ€Ż

Det samme gjelder sÄklart ogsÄ for !false som da blir det motsatte, nemlig true.

I hvilke tilfeller er det nyttig Ă„ bruke !true og !false?

En ting som er interessant er at du ogsĂ„ kan bruke en negation operator pĂ„ en variabel – !openSlot.

const openSlot = true;
const isAvailable = !openSlot;

Sammenligning

Det samme som

Du kan ogsĂ„ sammenligne om to tall er identiske ved Ă„ sammenligne dem med tre erlik-tegn – ===, som da kalles noe sĂ„ fancy som en equality operator. NĂ„r du sammenligner noe sĂ„ vil svaret alltid vĂŠre enten true eller false.

Om du lager et dataspill f. eks sÄ kan du bruke en equality operator for Ä sjekke om antall liv som en spiller har igjen er nÞyaktig 3:

console.log(remaingLives===3);

Ikke det samme som

Du har ogsĂ„ en motsatt greie som heter inequality operator, den bestĂ„r av et utropstegn og to erlik-tegn – console.log(1!==10;.

Det som er litt fancy er at du kan faktisk lagre svaret av en sammenligning i en variabel:

const comparisonResult = 1 !== 2;
console.log(result);

Resultatet da blir true. Og det gjelder sÄklart bÄde inequality og equality operators.

Utregning ved hjelp av sammenligning

PÄ den mÄten kan du faktisk sammenligne variabler med hverandre:

const one = 1;
const two = 2;
console.log(one === two);
console.log(one !== two);

Resultatet av det der blir da falsepÄ den fÞrste og true pÄ den andre.

Et eksempel til kan vĂŠre:

const emails = 1000 ;
const inboxFull = emails === 1000;

Resultatet av det da vil vĂŠre true, og at innboksen er full fordi den har 1000 eposter i seg.

Det kan ogsÄ vÊre en mÄte Ä sjekke hvilket nivÄ man er pÄ i et spill:

const level = 5;
const highestLevel = 50;
console.log(level === highestLevel);

Resultatet da blir false siden spilleren er pÄ level 5.

Utregning

Du kan ogsÄ lagre svaret til en utregning inni en ny variabel, som i tilfellet under, hvor du har en variabel som viser en score, og en annen som viser eventuell bonus. De to kan du plusse sammen, og lagre svaret som en verdi i en ny variabel som heter total.

const score = 1084;
const bonus = 500;

const total = score + bonus;
console.log(total);

Resultatet som vises i console output blir da 1584.