Week 9: Strict mode & functions

1 / 32
volgende
Slide 1: Tekstslide
JavaScriptMBOStudiejaar 2

In deze les zitten 32 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Terugblik

4 code challenges.
Aan jezelf bewijzen dat je het kan.

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Doel van deze les
Advanced fundamentals van JS.
  • Strict mode.
  • Functions.

Alles wordt afgesloten met code challenges.

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Strict mode
Strict mode is een belangrijke keyword. Het zorgt ervoor dat JS veel oplettender is op kleine foute en zal de compiler vertellen jouw feedback te geven wanneer je onduidelijk bent of een fout hebt gemaakt.

Laten wij dit zien aan de hand van een voorbeeld.

Slide 4 - Tekstslide

Deze slide heeft geen instructies

Strict mode
Strict mode is een belangrijke keyword. Het zorgt ervoor dat JS veel oplettender is op kleine foute en zal de compiler vertellen jouw feedback te geven wanneer je onduidelijk bent of een fout hebt gemaakt.

Laten wij dit zien aan de hand van een voorbeeld.

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Wat is er mis met de code?

Slide 6 - Woordweb

Deze slide heeft geen instructies

Strict mode
Activeer strict mode door bovenaan jouw file het volgende te schrijven:

'use strict';

Run de code nu nog eens. Wat komt er nu in de console van je browser te staan?

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Strict mode
Strict mode beschermd jou ook tegen het declareren van variabele namen die ook een keyword zijn in JS. Bijvoorbeeld:

const interface = `Audio`;
const private = 543;

Run deze code. Wat zegt de compiler nu?

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Functions
Fundamentele building blocks van programmeren.

Laten wij een samen een voorbeeld maken.

Slide 9 - Tekstslide

Deze slide heeft geen instructies

Functions
function logger() {
    console.log(`My name is Taif`);
}

logger();

*Je kan deze functie zo vaak oproepen als je wilt*

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Hoe noem je het aanroepen van een functie in het Engels?
A
Calling a function
B
Invoking a function
C
Running a function
D
Alle antwoorden zijn correct

Slide 11 - Quizvraag

Deze slide heeft geen instructies

Functions
Functions zijn net kleine machines. Die kunnen input nemen, er iets mee doen en iets 'uitspugen'.

Laten we een voorbeeld nemen van een foodprocessor.

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Functions
Fundamentele building blocks van programmeren.

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Functions
Opdracht:
Maak een functie genaamd fruitProcessor. Deze neemt twee variabelen, namelijk, 'apples' en 'oranges'. In deze functie moet apples en oranges geprint worden. Maak daaronder ook de variabele 'juice'. Deze variabele moet `Juice with ${apples} apples and ${oranges} oranges.`; bevatten. Return deze value.

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Functions

Laten we dit samen doen.

Slide 15 - Tekstslide

function fruitProcessor(apples, oranges) {
    console.log(apples, oranges);
    const juice = `Juice with ${apples} apples and ${oranges} oranges.`;
    return juice;
}

 const appleJuice = fruitProcessor(5, 0);
 console.log(appleJuice);

 console.log(fruitProcessor(5, 0));

 const appleOrangeJuice = fruitProcessor(2, 4);
 console.log(appleOrangeJuice);

 const num = Number('23');
Functions

Function gebruiken wij om stukken code te hergebruiken.

In programmeren is er een bekende gezegde; Don't Repeat Yourself (DRY principle).

Slide 16 - Tekstslide

function fruitProcessor(apples, oranges) {
    console.log(apples, oranges);
    const juice = `Juice with ${apples} apples and ${oranges} oranges.`;
    return juice;
}

 const appleJuice = fruitProcessor(5, 0);
 console.log(appleJuice);

 console.log(fruitProcessor(5, 0));

 const appleOrangeJuice = fruitProcessor(2, 4);
 console.log(appleOrangeJuice);

 const num = Number('23');
Functions declarations vs expressions
function calcAge1(birthYear) {
     const age = 2037 - birthYear;
     return age;
 }

>>>

function calcAge1(birthYear) {
     return 2037 - birthYear;
 }

Slide 17 - Tekstslide

Deze slide heeft geen instructies

Functions declarations vs expressions
Let op! Wanneer je het woord parameters en arguments gebruikt.

Slide 18 - Tekstslide

Deze slide heeft geen instructies

Wat is het woord dat nu in het oranje is gearceerd.
A
Dit is een argument
B
Dit is een parameter
C
👌🏼
D
Dit is een string literal.

Slide 19 - Quizvraag

Deze slide heeft geen instructies

Functions declarations
Een function declaration:

// Function declaration
 function calcAge1(birthYear) {
     return 2037 - birthYear;
 }
 const age1 = calcAge1(1989);

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Functions expression
Een function declaration:

// Function declaration
 function calcAge1(birthYear) {
     return 2037 - birthYear;
 }
 const age1 = calcAge1(1989);

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Functions declarations vs expressions
Een function is ook een value want wij kunnen hem in een variabele stoppen.

Welke van de twee moet je gebruiken? Dat ligt aan jouw eigen programmeer-stijl.

Slide 22 - Tekstslide

Deze slide heeft geen instructies

Arrow functions
Opdracht:
Zoek op hoe je een arrow function moet gebruiken in JS.

De functie moet hetzelfde bevatten als calcAge2. Sla deze functie op in een variabele genaamd calcAge3.

Slide 23 - Tekstslide

Deze slide heeft geen instructies

Opdracht:
Zoek op hoe je een arrow function moet gebruiken in JS.

De functie moet hetzelfde bevatten als calcAge2. Sla deze functie op in een variabele genaamd calcAge3.

Slide 24 - Open vraag

let drink2
if (age >= 18) {
    drink2 = `wine 🍷`;
} else {
    drink2 = `water 💧`;
}
console.log(drink2);
Arrow functions
Laten wij dit samen doen:

Slide 25 - Tekstslide

Deze slide heeft geen instructies


Is dit een expression?
A
Ja, want de inhoud van calcAge3 produceert een waarde.
B
Nee, want dit produceert geen waarde.
C
Dit kan geen expression zijn want het is geen functie.
D
Jesse moet ook les geven in JS #teamspirit.

Slide 26 - Quizvraag

Deze slide heeft geen instructies

Arrow functions



Geen return nodig.
Goed voor 1 line functions.

Slide 27 - Tekstslide

Deze slide heeft geen instructies

Arrow functions

Slide 28 - Tekstslide

Deze slide heeft geen instructies

Arrow functions

Slide 29 - Tekstslide

Deze slide heeft geen instructies

Arrow functions
Kan ik niet gewoon overal arrow functions gebruiken omdat het zo makkelijk is te gebruiken?

Nee

Dat komt omdat arrow functions geen 'this' keyword ondersteunen. Dit leg ik later uit.

Slide 30 - Tekstslide

Deze slide heeft geen instructies

Functions in functions
Kan ik niet gewoon overal arrow functions gebruiken omdat het zo makkelijk is te gebruiken?

Nee

Dat komt omdat arrow functions geen 'this' keyword ondersteunen. Dit leg ik later uit.

Slide 31 - Tekstslide

Deze slide heeft geen instructies

Functions in functions
Kan ik niet gewoon overal arrow functions gebruiken omdat het zo makkelijk is te gebruiken?

Nee

Dat komt omdat arrow functions geen 'this' keyword ondersteunen. Dit leg ik later uit.

Slide 32 - Tekstslide

Deze slide heeft geen instructies