Paramètres de la fonction JavaScript
Un JavaScript function
n'effectue aucune vérification sur les valeurs des paramètres (arguments).
Paramètres de fonction et arguments
Plus tôt dans ce tutoriel, vous avez appris que les fonctions peuvent avoir des paramètres :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Les paramètres de fonction sont les noms répertoriés dans la définition de la fonction.
Les arguments de la fonction sont les valeurs réelles transmises à (et reçues par) la fonction.
Règles de paramètres
Les définitions de fonctions JavaScript ne spécifient pas les types de données pour les paramètres.
Les fonctions JavaScript n'effectuent pas de vérification de type sur les arguments passés.
Les fonctions JavaScript ne vérifient pas le nombre d'arguments reçus.
Paramètres par défaut
Si une fonction est appelée avec des arguments manquants (inférieurs à ceux déclarés), les valeurs manquantes sont définies sur
undefined
.
Parfois c'est acceptable, mais parfois il est préférable d'attribuer une valeur par défaut au paramètre :
Exemple
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 autorise les valeurs de paramètre par défaut dans la déclaration de fonction :
function myFunction(x, y = 2) {
// function code
}
L'objet Arguments
Les fonctions JavaScript ont un objet intégré appelé l'objet arguments.
L'objet argument contient un tableau des arguments utilisés lorsque la fonction a été appelée (appelée).
De cette façon, vous pouvez simplement utiliser une fonction pour trouver (par exemple) la valeur la plus élevée dans une liste de nombres :
Exemple
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Ou créez une fonction pour additionner toutes les valeurs d'entrée :
Exemple
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Si une fonction est appelée avec trop d'arguments (plus que déclarés), ces arguments peuvent être atteints en utilisant l'objet arguments .
Les arguments sont passés par valeur
Les paramètres, dans un appel de fonction, sont les arguments de la fonction.
Les arguments JavaScript sont passés par valeur : la fonction ne connaît que les valeurs, pas les emplacements des arguments.
Si une fonction modifie la valeur d'un argument, elle ne modifie pas la valeur d'origine du paramètre.
Les modifications apportées aux arguments ne sont pas visibles (reflétées) en dehors de la fonction.
Les objets sont passés par référence
En JavaScript, les références d'objets sont des valeurs.
De ce fait, les objets se comporteront comme s'ils étaient passés par référence :
Si une fonction modifie une propriété d'objet, elle modifie la valeur d'origine.
Les modifications apportées aux propriétés de l'objet sont visibles (reflétées) en dehors de la fonction.