Développement web

Cours 14

JavaScript

Fonctions

Une fonction permet de regrouper une ou plusieurs instructions qui seront exécutées lorsque nous appelerons cette fonction

Cela permet en général de ne pas avoir à écrire plusieurs fois le même code

Exemple d'une fonction qui dit Bonjour ! et que nous appelons plusieurs fois


function sayHi()
{
    console.log('Bonjour !')
}

sayHi()
sayHi()
sayHi()
                        

Déclaration

Une fonction peut être déclarée de plusieurs façons


// Fonction nommée
function myFunction()
{
}
                        

// Fonction anonyme
const myFunction = function()
{
}
                        

☝️ la fonction est anonyme mais elle est assignée à une variable qui possède un nom

Paramètres

Une fonction peut être appelée avec des paramètres


function sayHi(name, age)
{
    console.log(`Bonjour ! Mon nom est ${name} et j'ai ${age} ans.`)
}

sayHi('Toto', 25)
                        

☝️ si nous appelons la fonction sans paramètre, name et age seront undefined


function sayHi(name, age)
{
    console.log(`Bonjour ! Mon nom est ${name} et j'ai ${age} ans.`)
}

sayHi()
                        

Pour résoudre ça, il est possible de spécifier des paramètres par défaut avec des = à la déclaration des paramètres


function sayHi(name = 'John Doe', age = 99)
{
    console.log(`Bonjour ! Mon nom est ${name} et j'ai ${age} ans.`)
}

sayHi()
                        

return

Une fonction peut renvoyer un résultat avec return

Exemple d'une fonction qui renvoie le minimum entre les deux paramètres


function minimum(a, b)
{
    if(a < b)
    {
        return a
    }
    else
    {
        return b
    }
}

const result = minimum(1, 2)
                        

☝️ lorsque return est appelé la fonction s'arrête et ce qui suit ne sera pas executé

Nous pouvons donc écrire la précédente fonction ainsi


function minimum(a, b)
{
    if(a < b)
    {
        return a
    }

    return b
}

const result = minimum(1, 2)
                        

Une fonction peut modifier des variables déclarées en dehors d'elle-même


let score = 0

function addPoints(count)
{
    score += count
}

addPoints(1)
addPoints(1)
addPoints(10)
                        

La fonction peut être déclarée après son utilisation

Mais ce n'est pas idéal pour la compréhension


function minimum(a, b)
{
    if(a < b)
    {
        return a
    }

    return b
}

const result = minimum(1, 2)
                        

const result = minimum(1, 2)

function minimum(a, b)
{
    if(a < b)
    {
        return a
    }

    return b
}
                        

Les deux fonctions ont le même effet

Fat arrow

Depuis l'ES6, il existe une nouvelle façon d'écrire les fonctions appelée fat arrow

Prenons comme exemple une fonction qui rajoute une valeur aléatoire à la variable envoyée et renvoie le résultat


const minimum = (a, b) =>
{
    if(a < b)
    {
        return a
    }

    return b
}

const result = minimum(1, 2)
                        

L'avantage d'une fonction fat arrow n'est pas que syntaxique

Elle permet aussi de conserver le context (this) dans le cadre du développement orienté objet (class)

☝️ mais nous verrons cela dans un autre cours