Maison  >  Article  >  interface Web  >  Explication détaillée de la fonction dans les compétences JavaScript_javascript

Explication détaillée de la fonction dans les compétences JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:12:471206parcourir

Le mot clé function est utilisé pour définir des fonctions.

Copier le code Le code est le suivant :

//Définition déclarative de la fonction :
fonction nom de fonction([arg1[,args[...,argn]]]){
déclarations
>
//Définition de l'expression de fonction :
var funcname = fonction ([arg1[,args[...,argn]]]){
déclarations
};

Notez que les accolades dans l'instruction de fonction sont obligatoires, même si le corps de la fonction ne contient qu'une seule instruction.

En JavaScript, une fonction est une instance spécifique de la classe Function. Et ils ont tous les mêmes propriétés et méthodes que les autres types de référence.

Le nom de la fonction est en fait un pointeur vers l'objet fonction, et la fonction peut être utilisée comme paramètre pour participer au passage des paramètres et à la valeur renvoyée.

Propriétés des objets des fonctions

Parce que la fonction est une instance de Function et que le nom de la fonction n'est qu'une adresse de référence de l'instance. Par conséquent, il peut participer au processus de passage des paramètres de la fonction en tant que paramètres et valeurs de retour.

Copier le code Le code est le suivant :

function call_some_function(some_function, some_argument) {
Renvoie some_function(some_argument);
>
fonction add_10(num) {
Renvoie le numéro 10 ;
>
console.log(call_some_function(add_10,20)); //30

Propriétés internes des fonctions

arguments | ceci
•L'objet arguments stocke les paramètres passés à la fonction
•arguments.length renvoie le nombre de paramètres passés dans
•Remarque : L'attribut length indique le nombre par défaut de paramètres reçus lorsque la fonction est définie. arguments.length représente le nombre d’arguments reçus lorsque la fonction est réellement exécutée.

Copier le code Le code est le suivant :

fonction test_arguments() {
Si (arguments.length == 2) {
console.log(arguments.length);
console.log(arguments);
} autre {
console.log(arguments.length);
console.log(arguments);
arguments.callee(4, 5);
};
}(1, 2, 3)
/**
 3
{ '0' : 1, '1' : 2, '2' : 3 >
2
{ '0' : 4, '1' : 5 >
 **/

•arguments.callee() est principalement utilisé dans les situations où la fonction elle-même est appelée dans une fonction récursive. La différence entre js et les autres langages est que le nom de la fonction n'est qu'un pointeur et peut être modifié à tout moment. L'utilisation du nom de la fonction pour s'appeler dans une fonction est fortement couplée et peut causer des problèmes. ) s'appeler évitera ce problème

Copier le code Le code est le suivant :

fonction factorielle(num) {
Si (num <= 1) {
Retour 1 ;
} autre {
Renvoie num * factorielle(num - 1);
};
>
fonction appelée_f(num) {
Si (num <= 1) {
Retour 1 ;
} autre {
Renvoie num * arguments.callee(num - 1);
};
>
factorial(10); //Exécuter normalement
f = factorielle;
factorielle = nulle;
f(10); //erreur
callee_f(10); //Exécuter normalement
f = appelé_f;
appelé_f = null;
f(10); //Exécuter normalement

• Ceci est principalement utilisé pour aider les fonctions à faire référence à des objets dans la portée de la fonction.

Copier le code Le code est le suivant :

var color = 'rouge';
fonction syaColor() {
console.log(this.color);
>
syaColor(); //rouge
var o = nouvel Objet();
o.color = 'bleu';
o.sayColor = sayColor;
o.sayColor(); //bleu

appeler() et postuler()

call() et apply() sont ses propres méthodes incluses dans chaque fonction. Comme mentionné précédemment, les fonctions sont des objets définis, donc lors de l'appel d'une fonction, cela dans la fonction est un appel aux variables actuelles et suivantes. Si vous souhaitez modifier l'espace de domaine dans lequel la fonction est exécutée, vous pouvez utiliser call() et apply() pour y parvenir.

Copier le code Le code est le suivant :

couleur = 'rouge';
var o = {couleur : 'bleu'};
fonction sayColor() {
console.log(this.color);
>
sayColor(); //rouge
sayColor.call(this); //rouge
sayColor.call(o); //bleu

Les fonctions de app() et call() sont les mêmes. La principale différence réside dans les paramètres transmis.

call(this,para1,prar2,prar3) Le premier paramètre est la portée dans laquelle la fonction doit être exécutée, et les paramètres suivants sont les paramètres d'entrée de la fonction. Écrivez autant qu'il y en a.

apply(this,[para1,para2,prara3]) Le premier paramètre est également la portée dans laquelle la fonction doit être exécutée, suivi d'un objet tableau Array.

Le plus grand avantage de l'utilisation de call()/apply() pour étendre la portée est le découplage des objets et des méthodes.

Objets intégrés

L'objet global peut être compris comme l'objet le plus externe. Tous les objets, ainsi que les propriétés et méthodes qui n'appartiennent pas à d'autres objets, sont inclus dans l'objet Global.
* isNaN(x) est utilisé pour vérifier si le paramètre x est un nombre. Renvoie faux s'il s'agit d'un nombre, sinon renvoie vrai
* isFinite(x) est utilisé pour vérifier si le paramètre x est infini/petit. S'il est infini/petit, il renvoie true
. * parseInt(x) est utilisé pour analyser des chaînes et renvoyer des entiers
* parseFloat(x) est utilisé pour analyser des chaînes et renvoyer des nombres à virgule flottante
* encodeURI() et encodeURIComponent() effectueront un encodage UTF-8 spécial sur la chaîne pour éviter certains caractères spéciaux afin que le navigateur puisse la comprendre. La principale différence entre eux est que encodeURI() n'encodera pas les caractères spéciaux qui sont eux-mêmes des URI, tandis qu'encodeURIComponent() encodera tous les caractères non standard qu'il trouve.

Copier le code Le code est le suivant :

var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal value.htm#start
console.log(encodeURI(uri))
//http://www.wrox.com/illegal value.htm#start
console.log(encodeURIComponent(uri))

•Les fonctions de décodage correspondantes sont decodeURI() et decodeURIComponent()
•eval(script) est utilisé pour exécuter le contenu du script dans l'interpréteur et renvoyer les résultats correspondants. Très puissant !

Remarque : dans le navigateur, l'objet Windows encapsule l'objet Global et assume de nombreuses tâches et fonctions supplémentaires.

L'objet Math est un autre objet intégré. Fournit des fonctions de calcul mathématique pour JavaScript.

Ce qui précède représente l’intégralité du contenu de cet article. J’espère qu’il vous plaira et qu’il pourra vous être utile.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn