Maison  >  Article  >  interface Web  >  Analyse détaillée des compétences de definition_javascript de la fonction JavaScript

Analyse détaillée des compétences de definition_javascript de la fonction JavaScript

WBOY
WBOYoriginal
2016-05-16 15:50:041001parcourir

Fonction

Quelques points clés :

a). Les fonctions sont des citoyens de premier ordre en JavaScript (importance)
                                                                                                                                                                                                                                                                                     . c). La fonction définit une portée de variable indépendante

Méthode de définition

a) Fonction nommée :

Les fonctions nommées sont globales sauf si elles sont définies dans une autre fonction.

      // 全局的命名函数
  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200));  //300

b) Fonction anonyme :

Les fonctions anonymes sont généralement affectées à une variable puis appelées via la variable.

    var func = function (x, y) {
      return x + y;
    }
    console.info(func(5, 2)); //7
Les fonctions anonymes conviennent aux situations suivantes de « fonctions anonymes immédiatement exécutées » :

    console.info(
      function (x, y) {
            return x + y;
          }(100, 200)  //立即调用
        );
C) La méthode de définition affecte l'effet d'exécution du code

La fonction nommée peut être utilisée d'abord puis définie

    console.info(sum(10, 10));
    function sum(num1, num2) {
      return num1 + num2;
    }
Les fonctions anonymes doivent être définies avant d'être utilisées

    //console.info(sumFunc(10, 10));  //Uncaught TypeError: Property 'sumFunc' of object [object Object] is not a function 
    var sumFunc = function (num1, num2) {
      return num1 + num2;
    };
    console.info(sumFunc(10, 10));


Valeur de retour de la fonction :

Utilisez return pour générer une valeur de retour S'il n'y a pas de retour, la fonction renvoie undefined

.

 function func() {
 }
 console.info(func()); //undefined
 function func2() {
   return; //空的返回语句
 }
 console.info(func2()); //undefined

La fosse cachée dans le retour :

 var func = function (x, y) {
   var sum = x + y;
   return {
     value : sum
   }
 }

Il n'y a aucun problème à écrire comme ceci : l'appel de func(5,5) renvoie l'objet {valeur : 10}

Cependant :

  var func = function (x, y) {
    var sum = x + y;
    return
    {
      value: sum
    };
  }
  console.info(func(5,5)); //undefined

Si le retour est suivi d'un retour chariot et d'un changement de ligne,

L'appel de func(5,5) affiche undefined
L'éditeur a ajouté un point-virgule après le retour pour nous, mais cela ne sert à rien dans ce cas ;

Les fonctions sont des objets :

  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200)); //300
  var other = add; //other和add引用同一函数对象
  console.info(other(300, 400)); //700
  console.info(typeof other);  //function
  console.info(add === other); //true

Fonctions définies imbriquées :

Au sein d'une fonction, vous pouvez définir une autre fonction.

  function outerFunc(a, b) {
    function innerFunc(x) {
      return x * x;
    }
    return Math.sqrt(innerFunc(a) + innerFunc(b));
  }
  console.info(outerFunc(3, 4)); //5

Accéder aux variables externes :

Les fonctions internes peuvent accéder aux variables et paramètres externes.

 var globalStr = 'globalStr';
 function outerFunc2(argu) {
   var localVar = 100;
   function innerFunc2() {
     localVar++;
     console.info(argu + ":" + localVar + ":" + globalStr);
   }
   innerFunc2(); //hello:101:globalStr
 }
 outerFunc2("hello");

Fonction qui renvoie une fonction :

Les fonctions étant des objets, elles peuvent être utilisées comme valeurs de retour.

  function outerFunc(x) {
    var y = 100;
    return function innerFunc() {
      console.info(x + y);
    }
  }
  outerFunc(10)(); //110
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

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