Utmaningar

Fråga 05-01: Vad skrivs ut?

  • [object Object];
  • Ellen Nu
  • Nu
  • undefined
Kommentar

Typiskt slarvfel. result.lastName är det nog som avses på sista raden.

Fråga 05-02: Vad skrivs ut?

  • 3
  • 2:34
  • 2:22
  • undefined
Kommentar

En slamkrypare. movies[1].length är det kluriga. movies[1] refererar till det andra objektet i arrayen, och egenskapen length på detta objekt ger 2:22.

Fundera på vad som händer om du skriver movies[1].length.length? Eller movies.length?

Fråga 05-03: Vad skrivs ut?

  • I have 12 somethings!
  • I have 10 somethings!
  • I have 0 somethings!
  • undefined
Kommentar

objPrototype är här vår prototyp utifrån vilken våra objekt skapas. obj.prop kommer att skapa en egenskap prop som överskuggar prototypens egenskap med samma namn. Vad händer om vi kommenterar ut raden obj.prop = quantity?

Fråga 05-04: Är funktionen "run" en funktion utan sidoeffekter? (Pure function)

  • Ja
  • Nej
  • Det beror på
  • Kanske
Kommentar

Nej, funktionen har sidoeffekter då den påverkar det objekt vars referens skickas som ett argument till funktionen.

Fråga 05-05: Vad skrivs ut?

  • 12
  • undefined
  • 10
  • 22
Kommentar

Här ser vi effekten av att funktionen run har sidoeffekter. Objektet myObj refererar till, via obj, påverkas.

Fråga 05-06: Vad skrivs ut?

  • 12
  • undefined
  • 10
  • 22
Kommentar

quantity i detta fall är en värdetyp, så kopieras dess innehåll till parametern q när quantity skickas som argument. Kopian q ändras och förstörs när funktionen run returnerar. run är i detta fall en funktion utan sidoeffekter.

Fråga 05-07: Vad returnerar funktionen?

  • ["Ellen", "Sture", "Maja"];
  • [{name: "Ellen", points: 13}, {name: "Sture", points: 3}, {name: "Maja", points: 39}]
  • { name: 'Sture', points: 3 }
  • [ { name: 'Sture', points: 3 } ]
Kommentar

Iteratorfunktioner så som filter, map, reduce, etc. är mycket kraftfulla. Dessutom lämpar de sig väl att kombinera med "arrow"-funktioner:

Fråga 05-08: Hur många gånger kommer funktionen printTeachers() att anropas?

  • 1
  • 3
  • 4
  • Tills applikationen kraschar (evighetsloop)

Fråga 05-09 Vad skrivs ut?

  • abyssinian, bombay, bengal, burmese, main coon
  • 12, 2, 14, 2, 4
  • 34
  • Applikationen kraschar (evighetsloop)
Kommentar

Här används Object.keys för att få ut objektets samtliga nycklar. Nyckeln används sedan för att få ut värdet i objektet. Notationen här liknar den när vi läser från arrayer. Kan du komma på ett enklare(?) sätt att göra samma sak?

Ett annat sätt som är vanligt att lösa ovanstående på är att använda sig av "destructing":