# Fördjupning av javascript

```
created: 2022-11-10
```

# Del I

Endast vad som skriv ut behöver redovisas nedan, men tänk på att radbrytningar
måste redovisas korrekt liksom varje annat tecken.

1. Vad kommer programmet skriva ut?

```js
console.log(1000 / (1 - 1));
```

2. Vad skriver koden nedan ut?

```js
console.log(typeof 3);
```

3. Vad skriver programmet ut?

```js
let a = "Ett";
let b = "Två";

console.log(`${a} och ${b}`);
```

4. Vad skriver koden nedan ut?

```js
let m = [["aa", "ab", "ac"], ["ba", "bb", "bc"], ["ca", "cb", "cc"]];

console.log(m[1][1]);
```

5. Vad skriver koden nedan ut?

```js
function K() {
  this.l = "A";
}

k.prototype.print = function () {
  return "Bokstaven är: " + this.l;
};

let A = new K();
let B = new K();

B.a = "BB";

console.log(B.print());
console.log(A.print());
```

6. Vad skriver koden nedan ut?

```js
let hund = {
  art: "hund",
  ljud: "voff",
  ben: 4,
  armar: 0,
  say: function () {
    return this.art + ":" + this.ljud + "!";
  },
};

console.log(hund.say());
```

7. Vad skriver programmet ut?

```js
"use strict";

async function main() {
  let promise1 = new Promise(function (resolve, reject) {
    resolve("Hello World!");
  });

  let result = await promise1;
  console.log(result);
}

console.log("###");
main();
console.log("###");
```

# Del II

1. Förklara vad som menas med asyncron programmering.

2. Vad är fördelen med att användaa löften, d.v.s. promise, i din kod?

# Del III

Skriv först ut vad programmet nedan skriver ut. Förklara sedan varför.

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

- En utskrift som liknar vad som är förväntat.

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

- En korrekt utskrift.
- En tydlig och nynaserat förklaring till hur programmet fungerar.
- Förklaringen måste dock inte gå igenom koden rad för rad.

## Uppgift 1

```js
"use strict";

const rex = [
  "Gustav Vasa",
  "Erik XIV",
  "Johan III",
  "Sigismund",
  "Karl IX",
  "Gustav II Adolf",
  "Kristina",
  "Karl X Gustav",
  "Karl XI",
  "Karl XII",
  "Frihet!",
];

const result = rex.filter((x) => x[0] === "G")
  .map((x, i) => (i + 1) + " : Kung " + x)
  .reduce((sum, x) => sum + ".\n" + x);

console.log(result);
```

** 🍀 Lycka Till! 🍀 **

** /krm **
