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()
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
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()
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
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