La fête de classe il y a deux jours, à l'exception de manger, de boire, de s'amuser et de dormir des bêtises, c'était tellement joyeux. C'était vraiment mieux de s'amuser seul que de s'amuser.
PS: Si vous obtenez votre diplôme ou si vous êtes sur le point d'obtenir votre diplôme, vous pouvez vous réunir si vous avez le temps. Après l'obtention du diplôme, vous aurez trop peu de temps pour vous réunir.
Maintenant, j'ai le temps de regarder quelque chose et de résumer quelque chose. Parce que j'ai regardé la partie JavaScript il y a quelques minutes, j'ai pris le temps de résumer les parties pertinentes de la fonction. Bien sûr, certaines parties y sont ma propre compréhension. S'il y a une mauvaise compréhension, veuillez le signaler.
Dans cette section, je vous parlerai à l'avance de la déclaration de déclaration en fonction de ma propre compréhension.
Remarque: À certains endroits, il est également appelé promotion de la déclaration de fonction. Les traductions sont différentes, les significations sont les mêmes, les comprendre. Compréhension de la longue durée de vie!
Avant de discuter à l'avance de la déclaration de la déclaration de fonction, il est nécessaire d'introduire plusieurs méthodes de définition de la fonction, que la plupart des amis devraient être familiers. Si vous comprenez ou ne voulez pas comprendre, baissez-vous joyeusement. Si vous ne savez pas ou ne voulez pas vous familiariser, ralentir et commencer.
Méthodes pour définir les fonctions
Il existe trois façons principales de définir les fonctions:
1. Déclaration de fonction
2. Expression de la fonction Expression de la fonction)
3. constructeur de fonctions
Parmi eux, des méthodes de définition de fonction pour les déclarations de fonction et les expressions de fonction sont souvent utilisées. Ces deux méthodes ont des différences et des connexions très subtiles, et l'utilisation de ces deux méthodes est facile à confondre. Par conséquent, cet article résume principalement les points de connaissance pertinents de ces deux méthodes de définition de fonction. Bien sûr, le sujet de cet article concerne toujours les fonctions à l'avance.
Format typique pour les déclarations de fonction:
fonction functionname (arg1, arg2, ...) {<! - Fonction Body ->}Expressions de fonction
• Format typique des expressions de fonction:
var variable = function (arg1, arg2, ...) {<! - Fonction Body ->}Expression de fonction contenant des noms (supports, noms de fonction):
var variable = fonction functionname (arg1, arg2, ...) {<! - Function Body ->}Les expressions de fonction avec des noms comme celles ci-dessus peuvent être utilisées pour la récursivité:
var variable = fonction functionname (x) {if (x <= 1) return 1; else return x * functionname (x);}Déclaration avant le calendrier
déclaration var à l'avance
Les amis auraient dû entendre parler de la déclaration à l'avance. Je voudrais le réitérer ici, car l'instruction à l'avance est une différence importante entre une déclaration de fonction et une expression de fonction, et il est d'une grande signification pour nous de comprendre davantage ces deux méthodes de définition de fonction.
Mais avant que la déclaration de fonction ne soit à l'avance, il est nécessaire de dire que la déclaration VAR est à l'avance.
Donnez d'abord la conclusion précoce de la déclaration VAR:
Les variables sont définies dans le script ou la fonction qui les déclare, et l'instruction de déclaration variable sera avancée en haut du script ou de la fonction. Cependant, l'opération d'initialisation de la variable est toujours exécutée à l'instruction VAR d'origine, et la valeur de la variable n'est pas définie avant la déclaration de l'instruction.
Trois points simples peuvent être résumés à partir de la conclusion ci-dessus:
1. La déclaration variable sera avancée en haut de la fonction;
2. C'est juste que la déclaration est avancée, l'initialisation n'est pas avancée et l'initialisation est toujours initialisée à l'emplacement d'initialisation d'origine;
3. La valeur de la variable n'est pas définie avant la déclaration.
Prenons l'exemple:
var handom = 'beau'; fonction beauTougly () {alert (beau); var worsome = 'laid'; alerte (beau);} HandoMetougly ();La sortie correcte est:
Première sortie non définie, puis sortie laide.
La sortie d'erreur est:
Sortie d'abord beau, puis sortie laide.
C'est exactement ce que la déclaration variable joue à l'avance. La belle variable locale est définie dans l'ensemble du corps de la fonction. La belle variable dans le corps de fonction est supprimée. Oh non, il couvre la belle variable globale du même nom, car la déclaration variable est avancée, c'est-à-dire que le beau beau est avancé vers le haut de la fonction, ce qui est comme ceci:
var worsome = 'Handome'; fonction webetougly () {var Handome; alerte (beau); var worsome = 'laid'; alerte (beau);} HandoMetougly ();Donc, avant alerte (beau), il y a déjà une belle déclaration de var, comme mentionné ci-dessus
La valeur de la variable n'est pas définie avant la déclaration
Ainsi, la première sortie n'est pas définie.
Et à cause de ce qui préfère:
C'est juste que la déclaration est avancée, l'initialisation n'est pas avancée, l'initialisation est toujours initialisée à l'emplacement d'initialisation d'origine.
Ainsi, la deuxième sortie est laide.
Déclaration de fonction à l'avance
Les deux suivants, nous commencerons à discuter de la déclaration de la déclaration de fonction à l'avance en combinaison avec la déclaration VAR.
Les amis doivent être familiers avec la déclaration de la déclaration de fonction à l'avance, alors donnez un exemple très familier.
SayTruth (); <! - Déclaration de fonction -> Fonction SayTruth () {alert ('MyVin est beau.');} SayTruth (); <! - Fonction Expression -> var SayTruth = function () {alert ('MyVin est beau.');}Les amis savent tous que la méthode de définition de la fonction de la déclaration de fonction, c'est-à-dire la première méthode d'appel de fonction ci-dessus est correcte, et la vérité que Myvin est beau. Peut être sorti, car l'instruction d'appel de fonction peut être placée après la déclaration de fonction. Pour la méthode de définition de la fonction de l'expression de la fonction, c'est-à-dire que la méthode du deuxième appel de fonction ci-dessus ne peut pas sortir le résultat correct de MyVin est beau.
Combiné avec le myvin ci-dessus est beau. Par exemple, la conclusion de la déclaration de fonction à l'avance semble facile à comprendre. N'est-ce pas seulement que lors de l'utilisation de la méthode de définition de la fonction de la déclaration de fonction, l'appel de fonction peut être placé n'importe où. Oui, vous avez raison, mon ami, je ne sais pas comment vous réfuter. Alors laissez-moi vous dire quelques mots supplémentaires.
De ce que mon ami a dit
N'est-ce pas simplement que lorsque vous utilisez des méthodes de définition de fonction pour les déclarations de fonction, les appels de fonction peuvent être placés n'importe où?
Cela peut conduire à un peu:
Lorsque la déclaration de fonction est avancée, la déclaration de fonction et le corps de fonction sont avancés.
et:
Les déclarations de fonction sont exécutées pendant la période de pré-exécution, c'est-à-dire que les déclarations de fonction sont exécutées lorsque le navigateur est prêt à exécuter du code. Étant donné que la déclaration de fonction est exécutée pendant la période d'exécution attendue, la déclaration de fonction n'est plus exécutée pendant la période d'exécution (il y a des gens qui l'ont déjà exécuté, et ils ne s'exécuteront naturellement plus).
Ci-dessus est un point.
Pourquoi l'expression ne peut-elle pas être déclarée à l'avance
Parlons d'une autre chose: pourquoi les expressions de fonctions ne peuvent-elles pas être déclarées à l'avance comme les déclarations de fonction?
Heureusement, je sais un peu, sinon je ne sais vraiment pas comment je devrais répondre?
Ahem, selon ma compréhension, laissez-moi vous expliquer:
Nous avons dit au-dessus de la déclaration VAR à l'avance, faites attention à ce que j'ai mentionné ci-dessus:
C'est juste que la déclaration est avancée, l'initialisation n'est pas avancée, l'initialisation est toujours initialisée à l'emplacement d'initialisation d'origine.
Ok, mettons l'expression de la fonction ici:
var variable = function (arg1, arg2, ...) {<! - Fonction Body ->}Les expressions de fonction sont le moyen d'écrire des définitions de fonction en expressions (cela semble être une perte de temps, mais cela est efficace pour interpréter et comprendre que les expressions de fonction ne peuvent pas être déclarées à l'avance), qui doit attribuer un objet de fonction à une variable, nous écrivons donc l'expression de la fonction comme celle-ci:
Var variable = 5 Voyant cela, peut-être que les amis comprendront que l'un doit attribuer une valeur à une variable, et l'autre consiste à attribuer un objet de fonction à une variable. Par conséquent, pour les expressions de fonction, l'affectation de variable ne sera pas avancée, c'est-à-dire la fonction (Arg1, Arg2, ...) {<! - Fonction Body ->} ne sera pas avancée, donc la définition de la fonction n'est pas exécutée, donc les expressions de fonction ne peuvent pas être des déclarations de fonction pré-déclarées.
Analyse de l'instance précoce de la déclaration de fonction
La même phrase, la réalité vient de l'exemple:
SayTruth (); if (1) {fonction saytruth () {alert ('myVin est beau')};} else {function sayTruth () {alert ('myVin is Ugly')};}Lorsque le navigateur ne lance pas d'erreur (veuillez vous tester si le navigateur correspondant a lancé une erreur. Pourquoi ne le teste pas?
Pourquoi? Bien sûr, la déclaration a été avancée. Étant donné que la déclaration de fonction est avancée, la déclaration de fonction sera analysée avant l'exécution du code. L'Ordre d'exécution est le suivant: Première fonction d'analyse didtruth () {alert ('MyVin est beau')}, et lorsque la fonction d'analyse didtruth () {alert ('myVin est laid')}, remplacement de la déclaration de fonction précédente. Lorsque nous appelons la fonction saytruth (), c'est-à-dire pendant l'exécution du code, la déclaration sera ignorée, donc Myvin est laid sera naturellement sorti (quelle réalité cruelle ...). Si vous oubliez, vous pouvez voir ce que vous avez dit ci-dessus:
Les déclarations de fonction sont exécutées pendant la période de pré-exécution, c'est-à-dire que les déclarations de fonction sont exécutées lorsque le navigateur est prêt à exécuter du code. Étant donné que la déclaration de fonction est exécutée pendant la période d'exécution attendue, la déclaration de fonction n'est plus exécutée pendant la période d'exécution (il y a des gens qui l'ont déjà exécuté, et ils ne s'exécuteront naturellement plus).
Un appel rapproché
Parlons des fonctions déclarées à l'avance (amélioration) ici. J'espère que ma compréhension et ma non-sens pourront être utiles à ceux qui en ont besoin.
Bien sûr, la pratique produit de véritables connaissances. La compréhension, la cognition et l'application des choses résident toujours dans la lecture, l'utilisation et le résumé davantage. Je me souviens d'un dicton célèbre qui parle de déclarations et de pratiques: "Déplacement et encourageons les nouvelles déclarations."
La brève analyse ci-dessus des déclarations de fonctions et des expressions de fonction - l'énoncé de déclaration de fonction est tout le contenu que j'ai partagé avec vous à l'avance. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.