Maison >interface Web >js tutoriel >Quelle est la différence entre la déclaration de fonction et l'expression de fonction ?

Quelle est la différence entre la déclaration de fonction et l'expression de fonction ?

一个新手
一个新手original
2017-10-10 10:24:581965parcourir


1. Comment définir des fonctions

Il existe deux manières de définir des fonctions : la déclaration de fonction et l'expression de fonction.
La syntaxe de déclaration de fonction est la suivante :

function functionName(arg0,arg1){//函数体}

D'abord le mot-clé de la fonction, puis le nom de la fonction. Ce sont les deux façons de spécifier le nom de la fonction. Concernant la déclaration de fonction, l'une de ses fonctionnalités les plus importantes est la promotion de la déclaration de fonction, ce qui signifie que la déclaration de fonction sera lue avant d'exécuter le code. Cela signifie que vous pouvez placer la déclaration de fonction après l'instruction qui l'appelle. Par exemple :

a();function a(){alert("a");}//a

Cet exemple ne se trompera pas car la déclaration de la fonction sera lue avant d'exécuter le code.
La deuxième façon de créer une fonction est une expression de fonction. La méthode suivante est la plus courante :

var a = function(arg0,arg1){//函数体};

Ce formulaire ressemble à une instruction d'affectation de variable ordinaire, c'est-à-dire créer une fonction Et affectez-le à la variable a. La fonction créée dans ce cas est appelée fonction anonyme car il n'y a pas d'identifiant après le mot-clé function.
Les expressions de fonction, comme les autres expressions, doivent se voir attribuer une valeur avant utilisation. Le code suivant provoquera une erreur :

a();var a = function(){alert("a");};//错误//补充说明:使用该方法定义函数,只有变量声明提前了,变量初始化代码仍在原来的位置

2. La différence entre la déclaration de fonction et l'expression de fonction

1 Le nom de la fonction est obligatoire dans la déclaration de fonction, mais il est possible dans. l'expression de fonction choisie.

//函数声明
    function sum(a, b) {
        return a + b;
    }
    alert(sum(1, 2));
//函数表达式
    /* var s = function sum(a, b) {
        return a + b;
    }
    alert(s(1, 2)); */

    var s = function(a, b) {
        return a + b;
    }
    alert(s(1, 2));    //以上两种都可以

2. Les fonctions définies avec des déclarations de fonction peuvent être appelées avant la déclaration de fonction, tandis que les fonctions définies avec des expressions de fonction ne peuvent être appelées qu'après la déclaration.

La raison fondamentale est que l'ordre dans lequel l'analyseur lit ces deux définitions est différent : l'analyseur lira la déclaration de fonction, c'est-à-dire que la déclaration de fonction peut être appelée à n'importe quelle position et pour les expressions de fonction ; L'analyseur ne démarrera l'exécution que lorsqu'il lira la ligne où se trouve l'expression de fonction (voir Partie 1, « Comment les fonctions sont définies » pour plus de détails).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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