Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Analyse der JavaScript-Funktionsdefinition_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:50:04
Original
1027 Leute haben es durchsucht

Funktion

Ein paar wichtige Punkte:

a). Funktionen sind erstklassige Bürger in JavaScript (Wichtigkeit)
                                                                                                                                                                                                                                                                       . c) Die Funktion definiert einen unabhängigen Variablenbereich

Definitionsmethode

a) Benannte Funktion:

Benannte Funktionen sind global, sofern sie nicht in einer anderen Funktion definiert sind.

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

Nach dem Login kopieren
b) Anonyme Funktion:

Anonyme Funktionen werden normalerweise einer Variablen zugewiesen und dann über die Variable aufgerufen.

    var func = function (x, y) {
      return x + y;
    }
    console.info(func(5, 2)); //7
Nach dem Login kopieren
Anonyme Funktionen eignen sich für die folgenden Situationen von „sofort ausgeführten anonymen Funktionen“:

    console.info(
      function (x, y) {
            return x + y;
          }(100, 200)  //立即调用
        );
Nach dem Login kopieren
C) Die Definitionsmethode beeinflusst den Codeausführungseffekt

Die benannte Funktion kann zuerst verwendet und dann definiert werden

    console.info(sum(10, 10));
    function sum(num1, num2) {
      return num1 + num2;
    }
Nach dem Login kopieren
Anonyme Funktionen müssen zuerst definiert werden, bevor

verwendet werden kann

    //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));


Nach dem Login kopieren

Funktionsrückgabewert:

Verwenden Sie return, um einen Rückgabewert zu generieren. Wenn es keinen Return gibt, gibt die Funktion undefiniert zurück

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

Nach dem Login kopieren

Die im Rücklauf versteckte Grube:

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

Nach dem Login kopieren
Es gibt kein Problem, so zu schreiben: Der Aufruf von func(5,5) gibt Object {Wert: 10 zurück

Aber:

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

Nach dem Login kopieren
Wenn auf die Rückgabe ein Wagenrücklauf und ein Zeilenwechsel folgen,
Beim Aufruf von func(5,5) wird undefiniert

angezeigt Der Herausgeber hat nach der Rückgabe für uns ein Semikolon hinzugefügt, das in diesem Fall jedoch keinen Nutzen hat.


Funktionen sind Objekte:

  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

Nach dem Login kopieren
Verschachtelte definierte Funktionen:


Innerhalb einer Funktion können Sie eine andere Funktion definieren.

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

Nach dem Login kopieren
Zugriff auf externe Variablen:


Interne Funktionen können auf externe Variablen und Parameter zugreifen.

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

Nach dem Login kopieren
Funktion, die eine Funktion zurückgibt:


Da Funktionen Objekte sind, können sie als Rückgabewerte verwendet werden.

  function outerFunc(x) {
    var y = 100;
    return function innerFunc() {
      console.info(x + y);
    }
  }
  outerFunc(10)(); //110
Nach dem Login kopieren
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage