Fonctions
Définir une fonction
(de préférence dans un fichier .js séparé)
-
function
UnNom(NomsArgumentsSéparésParVirgules)
{
...
}- les fonctions contiennent des déclarations de variables et des instructions
- les paramêtres sont passés par valeur, c-à-d. qu'à l'exécution, la fonction reçoit une copie des arguments fournis dans l'appel à la fonction.
-
il est possible de déclarer des objets de type fonction:
var UnNom = new function(NomsArgumentsSéparésParVirgules, "Corps_de_la_fonction");
Invoquer une fonction
- UnNom(ExpressionsSéparéesParVirgules)
Fonctions à nombre variable de paramêtres
Toute fonction a des propriétés prédéfinies qui permettent d'obtenir des informations sur la façon dont la fonction a été invoquée:
- arguments
- tableau accessible à l'intérieur du corps de la fonction et qui contient les valeurs des paramêtres effectifs fournis lors de l'appel de la fonction. arguments.length indique le nombre de paramêtres effectifs.
- arity
- valeur numérique indiquant le nombre de paramêtres formels de la fonction
- caller
- nom de la fonction ayant appelé la fonction courante. Si la fonction dans laquelle cette propriété est utilisée n'a pas été invoquée depuis une autre fonction, cette propriété vaut null.
La propriété arguments permet de gérer un nombre variable de paramêtres. P.ex.:
function Somme() {
var Resultat=0;
for (var i=1;
i<Somme.arguments.length; i++)
{
Resultat +=
Somme.arguments[i];
}
return Resultat;
}
permet de calculer la somme d'un nombre indéterminé de valeurs numériques
Fonctions globales prédéfinies
- escape(string) - copie locale
- dans une URL, remplace tous les caractères interdits par la séquence correspondante (%xx - où x est un chiffre hexadécimal).
- eval(string) - copie locale
- evalue une chaîne de caractères contenant du code JS.
- isNaN(obj) - copie locale
- (is Not a Number) determines if argument is not a number.
- Number(obj) - copie locale
- pour une date, retourne le nombre de millisecondes qui se sont écoulées depuis le 1 janvier 1970; pour un string, recherche des caractères numériques et retourne la valeur correspondante (si le string n'est pas un nombre bien formé, retourne NaN).
- parseFloat(string) - copie locale
- extrait un nombre en virgule flottante de l'argument string, sinon retourne NaN (Not a Number).
- parseInt(string, base) - copie locale
- (base is optionnel et représente la base de la valeur retournée)
- String(obj) - copie locale
- convertit l'argument en string.
- unescape(string) - copie locale
- transformation inverse de la fonction escape().