Aperçu des fonctions ECMAScript

Qu'est-ce qu'une fonction ?

Une fonction est un ensemble d'instructions qui peuvent être exécutées n'importe où et n'importe quand.

La fonction est au cœur de ECMAScript.

Une fonction est déclarée de la manière suivante : le mot-clé function, le nom de la fonction, un groupe de paramètres, et le code à exécuter entre parenthèses.

La syntaxe de base d'une fonction est la suivante :

function functionName(arg0, arg1, ... argN) {
  statements
}

Par exemple :

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

Comment appeler une fonction ?

La fonction peut être appelée par son nom suivi de parenthèses contenant les arguments, s'il y en a plusieurs.

Si vous souhaitez appeler la fonction de l'exemple précédent, vous pouvez utiliser le code suivant :

sayHi("David", "Nice to meet you!")

L'appel de la fonction sayHi() génère une fenêtre d'alerte. Vous pouvezEssaye cette exemple personnellement

Comment une fonction retourne-t-elle une valeur ?

La fonction sayHi() ne retourne pas de valeur, mais il n'est pas nécessaire de le déclarer spécifiquement (comme avec void en Java).

Même si une fonction a une valeur, il n'est pas nécessaire de la déclarer explicitement. La fonction doit simplement utiliser l'opérateur return suivi de la valeur à retourner.

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

Le code suivant affecte la valeur retournée par la fonction sum à une variable :

var iResult = sum(1,1);
alert(iResult);	// Affiche "2"

Un autre concept important est que, comme en Java, une fonction s'arrête immédiatement après l'exécution d'une instruction return. Par conséquent, le code après l'instruction return ne sera pas exécuté.

Par exemple, dans le code suivant, la boîte de dialogue alert ne s'affichera pas :

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

Une fonction peut contenir plusieurs instructions return, comme montré ci-dessous :

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  } else {
    return iNum2 - iNum1;
  }
}

La fonction ci-dessus est utilisée pour retourner la différence entre deux nombres. Pour cela, il faut soustraire le nombre plus petit du nombre plus grand, donc utiliser une instruction if pour décider quel return exécuter.

Si une fonction n'a pas de valeur de retour, on peut appeler l'opérateur return sans paramètres pour quitter la fonction à tout moment.

Par exemple :

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

Dans ce code, si sMessage vaut "bye", la boîte de dialogue d'alerte ne s'affichera jamais.

Remarque :Si une fonction n'a pas de valeur de retour explicite, ou appelle une instruction return sans paramètres, alors la valeur qu'elle retourne réellement est undefined.