Paramètres de la fonction JavaScript



La fonction JavaScript n'effectue aucune vérification sur la valeur du paramètre.


Paramètres explicites de la fonction (Paramètres) et paramètres implicites (Arguments)

Dans le tutoriel précédent, nous avons découvert les paramètres explicites de la fonction :

functionName(paramètre1, paramètre2, paramètre3) {
// Code à exécuter...
}

Les paramètres de fonction explicites sont répertoriés lorsque la fonction est définie.

Les paramètres de fonction implicites sont les valeurs réelles transmises à la fonction lorsque la fonction est appelée.


Règles de paramètres

Lorsqu'une fonction JavaScript est définie, le paramètre affiché ne spécifie pas de type de données.

Les fonctions JavaScript n'effectuent pas de vérification de type sur les paramètres implicites.

La fonction JavaScript ne détecte pas le nombre de paramètres implicites.


Paramètres par défaut

Si la fonction est appelée sans fournir de paramètres implicites, les paramètres seront définis par défaut sur : non défini

Parfois ceci est Acceptable, mais il est recommandé de définir une valeur par défaut pour le paramètre :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p>设置参数的默认值。</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
    if (y === undefined) {
        y = 0;
    }    
    return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne

Ou, le plus simple :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p>设置函数参数默认值。</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
    y = y || 0;
    return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne

Note如果y已经定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。

Si trop de paramètres sont définis lors de l'appel de la fonction, les paramètres ne seront pas référencés car les noms de paramètres correspondants sont introuvables. Ne peut être appelé qu’à l’aide de l’objet arguments.


Objet Arguments

La fonction JavaScript a un objet arguments intégré objet. L'objet

argument contient le tableau de paramètres de l'appel de fonction.

De cette façon, vous pouvez facilement retrouver la valeur du dernier paramètre :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p>查找最大的数。</p>
<p id="demo"></p>
<script>
function findMax() {
    var i, max = 0;
    for(i = 0; i < arguments.length; i++) {
		if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
} 
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>

</body>
</html>

Exécuter l'instance »

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne

ou créez une fonction pour compter la somme de toutes les valeurs :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p>计算所有参数之和:</p>
<p id="demo"></p>
<script>
function sumAll() {
    var i, sum = 0;
    for(i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
} 
document.getElementById("demo").innerHTML =
	sumAll(1, 123, 500, 115, 44, 88);
</script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne


Passer les paramètres par valeur

Les paramètres appelés dans la fonction sont les paramètres implicites de la fonction.

Les paramètres implicites JavaScript sont passés par valeur : la fonction récupère simplement la valeur.

Si une fonction modifie la valeur d'un paramètre, elle ne modifie pas la valeur initiale du paramètre explicite (défini en dehors de la fonction).

Les modifications apportées aux paramètres implicites ne sont pas visibles en dehors de la fonction.


Passer des paramètres à travers des objets

En JavaScript, vous pouvez référencer la valeur d'un objet.

Ainsi, lorsque nous modifions les propriétés de l'objet à l'intérieur de la fonction, sa valeur initiale sera modifiée.

La modification des propriétés d'un objet peut agir en dehors de la fonction (variables globales).

La modification des propriétés de l'objet est visible en dehors de la fonction.