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. myObj påverkas.
Fråga 05-06: Vad skrivs ut?
- 12
- undefined
- 10
- 22
Kommentar
Då 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 functions:
Fråga 05-08: Hur många gånger kommer funktionen printTeachers() att anropas?
- 1
- 3
- 4
- Tills applikationen krashar (evighetsloop)
Fråga 05-09 Vad skrivs ut?
- abyssinian, bombay, bengal, burmese, main coon
- 12, 2, 13, 2, 2, 4
- 34
- Applikationen krashar (evighetsloop)
Kommentar
Här används Object.keys för att få ut objektets samtliga nycklar. Nycklen 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":