Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Funktion in JavaScript_Javascript-Kenntnissen

Detaillierte Erläuterung der Funktion in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:12:471220Durchsuche

Das Schlüsselwort function wird zum Definieren von Funktionen verwendet.

Code kopieren Der Code lautet wie folgt:

//Funktionsdeklarative Definition:
Funktion funcname([arg1[,args[...,argn]]]){
Aussagen
}
//Funktionsausdrucksdefinition:
var funcname = function ([arg1[,args[...,argn]]]){
Aussagen
};

Beachten Sie, dass die geschweiften Klammern in der Funktionsanweisung erforderlich sind, auch wenn der Funktionskörper nur eine Anweisung enthält.

In JavaScript ist eine Funktion eine bestimmte Instanz der Function-Klasse. Und sie alle haben die gleichen Eigenschaften und Methoden wie andere Referenztypen.

Der Funktionsname ist eigentlich ein Zeiger auf das Funktionsobjekt, und die Funktion kann als Parameter verwendet werden, um an der Parameterübergabe und dem Rückgabewert teilzunehmen.

Objekteigenschaften von Funktionen

Weil die Funktion eine Instanz von Function ist und der Funktionsname nur eine Referenzadresse der Instanz ist. Daher kann es als Parameter und Rückgabewerte am Parameterübergabeprozess der Funktion teilnehmen.

Code kopieren Der Code lautet wie folgt:

function call_some_function(some_function, some_argument) {
Gibt some_function(some_argument);
zurück }
Funktion add_10(num) {
Rückgabenummer 10;
}
console.log(call_some_function(add_10,20)); //30

Interne Eigenschaften von Funktionen

Argumente | •Das Argumentobjekt speichert die an die Funktion übergebenen Parameter •arguments.length gibt die Anzahl der übergebenen Parameter zurück
•Hinweis: Das Längenattribut gibt die Standardanzahl der Parameter an, die bei der Definition der Funktion empfangen werden. arguments.length stellt die Anzahl der empfangenen Argumente dar, wenn die Funktion tatsächlich ausgeführt wird.

Funktion test_arguments() {
If (arguments.length == 2) {
console.log(arguments.length);
console.log(Argumente);
} sonst {
console.log(arguments.length);
console.log(Argumente);
arguments.callee(4, 5);
};
}(1, 2, 3)
/**
 3
{ '0': 1, '1': 2, '2': 3 }
2
{ '0': 4, '1': 5 }
 **/


•arguments.callee() wird hauptsächlich in Situationen verwendet, in denen die Funktion selbst in einer rekursiven Funktion aufgerufen wird. Der Unterschied zwischen js und anderen Sprachen besteht darin, dass der Funktionsname nur ein Zeiger ist und jederzeit geändert werden kann. Die Verwendung des Funktionsnamens zum Aufrufen selbst in einer Funktion ist stark gekoppelt und kann zu Problemen führen. ) sich selbst aufzurufen, wird dieses Problem vermeiden

Funktion Fakultät(num) {
If (num <= 1) {
Rückgabe 1;
} sonst {
Gibt num * Faculty(num - 1);
zurück };
}
Funktion callee_f(num) {
If (num <= 1) {
Rückgabe 1;
} sonst {
Gibt num * arguments.callee(num - 1);
zurück };
}
factial(10); //Normal ausführen
f = Fakultät;
Fakultät = null;
f(10); //Fehler
callee_f(10); //Normal ausführen
f = callee_f;
callee_f = null;
f(10); //Normal ausführen


•Dies wird hauptsächlich verwendet, um Funktionen dabei zu helfen, auf Objekte im Funktionsumfang zu verweisen.

var color = 'red';
Funktion syaColor() {
console.log(this.color);
}
syaColor(); //red
var o = new Object();
o.color = 'blue';
o.sayColor = sayColor;
o.sayColor(); //blue

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn