Définir une fonction
En JavaScript, la manière de définir une fonction est la suivante :
function abs(x) {
if (x >= 0) { return x ;
} else { return -x;
}
}
La fonction abs() ci-dessus est définie comme suit :
function souligne qu'il s'agit d'une définition de fonction ; abs est le nom de la fonction ; les paramètres de la fonction sont répertoriés entre parenthèses (x) et plusieurs paramètres sont séparés par ; le code entre {...} est le corps de fonction, qui peut contenir plusieurs instructions, ou même sans aucune instruction.
Veuillez noter que lorsque les instructions à l'intérieur du corps de la fonction sont exécutées, une fois return exécuté, la fonction sera exécutée et le résultat sera renvoyé. Par conséquent, une logique très complexe peut être implémentée à l’intérieur de la fonction via un jugement conditionnel et un bouclage.
S'il n'y a pas d'instruction return, le résultat sera renvoyé une fois la fonction exécutée, mais le résultat ne sera pas défini.
Puisqu'une fonction JavaScript est également un objet, la fonction abs() définie ci-dessus est en fait un objet fonction, et le nom de la fonction abs peut être considéré comme une variable pointant vers la fonction.
Par conséquent, la deuxième façon de définir une fonction est la suivante :
var abs = function (x) {
if (x >= 0) { return x ;
} else { return -x;
}
};
De cette façon, la fonction (x) { ... } est une fonction anonyme, elle n'a pas de nom de fonction. Cependant, cette fonction anonyme est affectée à la variable abs, la fonction peut donc être appelée via la variable abs.
Les deux définitions ci-dessus sont complètement équivalentes. Notez que la deuxième méthode nécessite d'ajouter un ; à la fin du corps de la fonction selon la syntaxe complète, indiquant la fin de l'instruction d'affectation.
La fonction est l'un des cœurs du langage JavaScript. Sa syntaxe de base est la suivante :
function functionName(arg0, arg1, .. .) {
Déclarations
}
Interprétation de la syntaxe
Utiliser le mot-clé function pour définir une fonction
Le mot-clé function est suivi d'un espace suivi du nom de la fonction
Le nom de la fonction est suivi d'une paire de parenthèses arg0 et arg1 représentent les paramètres de la fonction. Les paramètres sont séparés par ",". (0 signifie aucun paramètre). Lorsqu'il n'y a pas de paramètres, les parenthèses () ne peuvent pas être omises. Les paramètres dépassant 25 seront ignorés par JavaScript
{} est le corps de la fonction, qui contient l'instruction fonctionnelle à implémenter par la fonction
.<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function hello(name){ document.write((name + ",你好!")); } </script> </head> <body> <input type="button" onclick="hello('小明')" value="确定"/> </body> </html>
Expression de fonction
Les fonctions JavaScript peuvent être définies par une expression.
Les expressions de fonction peuvent être stockées dans des variables :
var x = function (a, b) {return a * b};
Une fois l'expression de la fonction stockée dans la variable, la variable peut également être utilisée comme fonction :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x(6, 9); </script> </body> </html>
Fonction Levage (Levage)
Dans le tutoriel précédent nous avons appris le « levage ».
Le levage est le comportement par défaut de JavaScript consistant à hisser la portée actuelle vers l'avant.
Le levage est appliqué aux déclarations de variables et aux déclarations de fonctions.
Par conséquent, la fonction peut être appelée avant la déclaration :
myFunction(5);
function myFunction(y) {
return y * y;
}
Ne peut pas être promu lors de la définition d'une fonction à l'aide d'une expression.
arguments
JavaScript a également un mot-clé gratuit arguments, qui se trouve uniquement à l'intérieur de la fonction Works et pointe toujours vers tous les paramètres transmis par l'appelant de la fonction actuelle.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function foo(x) { alert(x); // 10 for (var i=0; i<arguments.length; i++) { alert(arguments[i]); // 10, 20, 30 } } foo(10, 20, 30); </script> </head> <body> </body> </html>
La fonction est un objet
L'utilisation de l'opérateur typeof en JavaScript pour déterminer le type de fonction renverra "fonction".
Mais il est plus précis de décrire une fonction JavaScript comme un objet.
Les fonctions JavaScript ont des propriétés et des méthodes. La propriété
arguments.length renvoie le nombre de paramètres reçus lors de l'appel de la fonction :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> function myFunction(a, b) { return arguments.length; } document.getElementById("demo").innerHTML = myFunction(4,7,3); </script> </body> </html>