Week 9: Strict mode & functions

1 / 32
suivant
Slide 1: Diapositive
JavaScriptMBOStudiejaar 2

Cette leçon contient 32 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 60 min

Éléments de cette leçon

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Terugblik

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

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

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

Alles wordt afgesloten met code challenges.

Slide 3 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

Wat is er mis met de code?

Slide 6 - Carte mentale

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

Functions
Fundamentele building blocks van programmeren.

Laten wij een samen een voorbeeld maken.

Slide 9 - Diapositive

Cet élément n'a pas d'instructions

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

logger();

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

Slide 10 - Diapositive

Cet élément n'a pas d'instructions

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 - Quiz

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

Functions
Fundamentele building blocks van programmeren.

Slide 13 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

Functions

Laten we dit samen doen.

Slide 15 - Diapositive

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 - Diapositive

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 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 18 - Diapositive

Cet élément n'a pas d'instructions

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 - Quiz

Cet élément n'a pas d'instructions

Functions declarations
Een function declaration:

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

Slide 20 - Diapositive

Cet élément n'a pas d'instructions

Functions expression
Een function declaration:

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

Slide 21 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Question ouverte

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

Slide 25 - Diapositive

Cet élément n'a pas d'instructions


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 - Quiz

Cet élément n'a pas d'instructions

Arrow functions



Geen return nodig.
Goed voor 1 line functions.

Slide 27 - Diapositive

Cet élément n'a pas d'instructions

Arrow functions

Slide 28 - Diapositive

Cet élément n'a pas d'instructions

Arrow functions

Slide 29 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions