# 📦 Prov i JS programmeirng

__ date: 2023-10-17 __

## Del I

Max 1 poäng per uppgift. Du ska svara med resultat av de sista utrycket nedan.
Svaret ska vara exakt, men viss acceptans för felstavningar.

1. 1+1
2. "1"+1
3. typeof NaN
4. 5/0
5. "Hello!"[1]
6. "Aoo;Boo;Coo".split(";")
7. typeof "Hello"
8. !true
9. true && false

```js
let o = { a: 11, b: 22 };
let a = [1, 2, 3, [4, 5]];
```

Vi utgår från att koden ovan har körts innan uppgifterna nedan.

10. o.b
11. Object.keys(o)
12. a[0]+a[3][0]
13. a.length
14. let f = (x)=>3*x; f(3);

## Del II

Max 3 poäng per uppgift. Svara med både resultat och motivering.

```js
{
  let product = 1;

  function Mult(factor = 1) {
    produkt = produkt * faktor;
    return product;
  }
}
```

1. Vad kommer att returneras från funktions anropen "Mult(3);Mult(3)" om de
   anropas direkt efter koden ovan? Svara med resultat från båda anropen och
   förklara varför det blir så. Om det blir ett error förklara vilken typ av
   error och varför.

2. Vad kommer värdet vara av "produkt;" om kommandot ges efter koden i uppgiften
   ovan? Om det blir ett error förklara vilken typ av error och varför.

### Del III

_Max 4 poäng_

Med hjälp av async och await kan vi göra promise väldigt enkla att använda. Men
först behöver vi förstå promise och vi ska implementera ett nu! Förklara vad ett
promise är för något. Andänd sedan setTimeout för att skapa ett promise som
uppfylls("resolve") till värdet "HTS" efter 3040 milisekunder.

#### För att få ett poäng krävs

- Breskriv vad ett promise är för något.
- Skriv inget som inte bidrar till beskrivningen.
- Förklara vad det innebär att ett promise blir ett värde.

#### För att få full poäng krävs

- Du ska implmentera ett promise som ger ett värde enligt instruktionerna ovan.
- Promise utlöses i rätt tid enligt instruktionerna ovan.
- Koden är snygg, d.v.s. lätt att förstå och välstrukturerad.

** 🍀 Lycka Till! 🍀 **

** /krm **
