Artikel

8: Mehr Funktionen

8: Mehr Funktionen


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Miniaturansicht: Periodische Funktionen. (CC BY-NC-SA; OpenStax)


Was ist neu in PHP 8 (Funktionen, Verbesserungen und der JIT-Compiler)

PHP 8 wurde am 26. November 2020 offiziell zur allgemeinen Verfügbarkeit freigegeben!

Dieses neue große Update bringt viele Optimierungen und leistungsstarke Funktionen in die Sprache. Wir freuen uns, Sie durch die interessantesten Änderungen zu führen, die es uns ermöglichen, besseren Code zu schreiben und robustere Anwendungen zu entwickeln.

Sind Sie bereit? Tauchen wir ein!


Lesen Sie die funktionale Bewertungsmatrix von Josephs Verhalten. Warum macht Joseph Ihrer Meinung nach sarkastische, neckende Kommentare während des Unterrichts? Erklären Sie Ihre Argumentation.

ABC-Analyse: 9 von 10 Kommentaren wurden durch Lachen oder Aufmerksamkeit von Mitschülern verstärkt.

Interview mit Frau Rollison: “Joseph scheint die Aufmerksamkeit seiner Klassenkameraden zu genießen.”

Joseph Interview: “Ich bringe die Leute gerne zum Lachen. Es gibt mir das Gefühl, dass Leute wie ich sind.”

Bewertungsskala: Aufmerksamkeit sehr hoch eingestuft.

Kathleen Lane, PhD
Professor für Sonderpädagogik
Universität von Kansas

Transkript: Kathleen Lane, PhD

Nachdem Sie nun die Gelegenheit hatten, das Vervollständigen einer Funktionsmatrix mit Josephs Daten zu üben, können Sie sehen, dass dies ein wirklich eindeutiger Fall ist. Und wenn Sie sich das ansehen, können Sie sehen, dass Josephs Zielverhalten durch den Zugriff auf Aufmerksamkeit aufrechterhalten wird. Und wenn Sie sich die spezifischen Informationen in der Box ansehen, sehen wir, dass das Lehrerinterview deutlich macht, dass er die Aufmerksamkeit seiner Mitschüler genießt. Joseph selbst sagt ganz ehrlich: „Ich bringe die Leute gerne zum Lachen, ich fühle mich wie Leute wie ich.“ Und auf der Verhaltensbewertungsskala rangiert „Aufmerksamkeit“ ebenfalls sehr hoch und wenn Sie sich die gesammelten ABC-Daten ansehen, gab es zehn Fälle, in denen er auf die Aufmerksamkeit von Gleichaltrigen zugegriffen hat, um sein Zielverhalten zu zeigen. So wurden neun von zehn Kommentaren durch Lachen oder Aufmerksamkeit von Mitschülern verstärkt. Und Sie können die Daten auf diese Weise zusammenfassen, indem Sie „9 aus 10“ sagen, oder wenn Sie möchten, können Sie die Zahl, die jeder Instanz des Zielverhaltens entspricht, in dieses Feld schreiben.

Das IRIS Center Peabody College Vanderbilt University Nashville, TN 37203 [email protected] Das IRIS Center wird durch eine Kooperationsvereinbarung mit dem U.S. Department of Education, Office of Special Education Programs (OSEP) Grant #H325E170001 finanziert. Die Inhalte dieser Website geben nicht unbedingt die Richtlinien des US-Bildungsministeriums wieder, und Sie sollten nicht davon ausgehen, dass die Bundesregierung sie befürwortet. Projektleiterin Sarah Allen.

Copyright 2021 Vanderbilt-Universität. Alle Rechte vorbehalten.

* Informationen zu Rückerstattungen und Datenschutzbestimmungen finden Sie auf unserer Hilfe- und Supportseite.

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung-Keine kommerzielle Nutzung-Keine Bearbeitung 4.0 International Lizenz.


Variablen, die innerhalb einer JavaScript-Funktion deklariert werden, werden LOKAL zur Funktion.

Auf lokale Variablen kann nur innerhalb der Funktion zugegriffen werden.

Beispiel

// Code hier kann KEINEN Autonamen verwenden

Funktion myFunction() <
let carName = "Volvo"
// Code hier KANN carName verwenden
>

// Code hier kann KEINEN Autonamen verwenden

Da lokale Variablen nur innerhalb ihrer Funktionen erkannt werden, können gleichnamige Variablen in verschiedenen Funktionen verwendet werden.

Lokale Variablen werden erstellt, wenn eine Funktion gestartet wird, und gelöscht, wenn die Funktion abgeschlossen ist.


8: Mehr Funktionen

Wie in fast jeder Programmiersprache können Sie Funktionen verwenden, um Codeteile logischer zu gruppieren oder die göttliche Kunst der Rekursion zu üben.

Um eine Funktion zu deklarieren, müssen Sie nur die Funktion my_func < my_code > schreiben.

Das Aufrufen einer Funktion ist wie das Aufrufen eines anderen Programms, Sie schreiben nur seinen Namen.

Die Zeilen 2-4 enthalten die Funktion 'quit'. Die Zeilen 5-7 enthalten die 'Hallo'-Funktion Wenn Sie sich nicht ganz sicher sind, was dieses Skript macht, versuchen Sie es bitte!.

Beachten Sie, dass Funktionen nicht in einer bestimmten Reihenfolge deklariert werden müssen.

Beim Ausführen des Skripts werden Sie erstens feststellen, dass die Funktion 'hello' aufgerufen wird, zweitens die Funktion 'quit', und das Programm erreicht nie Zeile 10.

Dieses Skript ist fast identisch mit dem vorherigen. Der Hauptunterschied ist die Funktion 'e'. Diese Funktion gibt das erste empfangene Argument aus. Argumente innerhalb von Funktionen werden genauso behandelt wie Argumente, die dem Skript übergeben werden. Weiter Vorheriger Inhalt


8: Mehr Funktionen

Funktionen sind der Grundbaustein jeder Anwendung, unabhängig davon, ob es sich um lokale Funktionen handelt, die aus einem anderen Modul importiert wurden, oder um Methoden einer Klasse. Sie sind auch Werte, und genau wie andere Werte bietet TypeScript viele Möglichkeiten, um zu beschreiben, wie Funktionen aufgerufen werden können. Lassen Sie uns lernen, wie man Typen schreibt, die Funktionen beschreiben.

Funktionstyp-Ausdrücke

Der einfachste Weg eine Funktion zu beschreiben ist mit a Funktionstyp Ausdruck. Diese Typen sind syntaktisch ähnlich wie Pfeilfunktionen:

Die Syntax (a: string) => void bedeutet „eine Funktion mit einem Parameter namens a vom Typ string, der keinen Rückgabewert hat“. Genau wie bei Funktionsdeklarationen ist, wenn kein Parametertyp angegeben ist, implizit any .

Beachten Sie, dass der Parametername erforderlich. Der Funktionstyp (string) => void bedeutet „eine Funktion mit einem Parameter namens string vom Typ any“!

Natürlich können wir einen Typalias verwenden, um einen Funktionstyp zu benennen:

In JavaScript können Funktionen nicht nur aufrufbar sein, sondern auch Eigenschaften haben. Die Syntax des Funktionstypausdrucks lässt jedoch keine Deklaration von Eigenschaften zu. Wenn wir etwas Aufrufbares mit Eigenschaften beschreiben wollen, können wir a . schreiben Rufsignatur in einem Objekttyp:

Beachten Sie, dass sich die Syntax im Vergleich zu einem Funktionstypausdruck geringfügig unterscheidet - verwenden Sie : zwischen der Parameterliste und dem Rückgabetyp statt => .

JavaScript-Funktionen können auch mit dem new-Operator aufgerufen werden. TypeScript bezeichnet diese als Konstrukteure weil sie normalerweise ein neues Objekt erstellen. Du kannst schreiben Signatur konstruieren indem Sie das neue Schlüsselwort vor einer Rufsignatur hinzufügen:

Einige Objekte, wie das Date-Objekt von JavaScript, können mit oder ohne new aufgerufen werden. Sie können Aufruf- und Konstruktionssignaturen im gleichen Typ beliebig kombinieren:

Es ist üblich, eine Funktion zu schreiben, bei der sich die Typen der Eingabe auf den Typ der Ausgabe beziehen oder die Typen von zwei Eingaben in irgendeiner Weise zusammenhängen. Betrachten wir für einen Moment eine Funktion, die das erste Element eines Arrays zurückgibt:

Diese Funktion erledigt ihren Job, hat aber leider den Rückgabetyp any . Es wäre besser, wenn die Funktion den Typ des Array-Elements zurückgibt.

In TypeScript, Generika werden verwendet, wenn wir eine Entsprechung zwischen zwei Werten beschreiben wollen. Wir tun dies, indem wir a Typparameter in der Funktionssignatur:

Indem wir dieser Funktion einen Typparameter Type hinzugefügt und ihn an zwei Stellen verwenden, haben wir eine Verknüpfung zwischen der Eingabe der Funktion (dem Array) und der Ausgabe (dem Rückgabewert) erstellt. Wenn wir es jetzt nennen, kommt ein spezifischerer Typ heraus:

Beachten Sie, dass wir in diesem Beispiel keinen Typ angeben mussten. Der Typ war gefolgert - automatisch ausgewählt - durch TypeScript.

Wir können auch mehrere Typparameter verwenden. Eine eigenständige Version der Karte würde beispielsweise so aussehen:

Beachten Sie, dass TypeScript in diesem Beispiel sowohl den Typ des Eingabetypparameters (aus dem angegebenen String-Array) als auch den Ausgabetypparameter basierend auf dem Rückgabewert des Funktionsausdrucks ( Zahl ) ableiten könnte.

Wir haben einige generische Funktionen geschrieben, die funktionieren können irgendein Art von Wert. Manchmal möchten wir zwei Werte in Beziehung setzen, können aber nur mit einer bestimmten Teilmenge von Werten arbeiten. In diesem Fall können wir a Zwang um die Typen von Typen einzuschränken, die ein Typparameter akzeptieren kann.

Schreiben wir eine Funktion, die den längeren von zwei Werten zurückgibt. Dazu benötigen wir eine Längeneigenschaft, die eine Zahl ist. Wir einschränken den Typparameter zu diesem Typ, indem Sie eine erweiterte Klausel schreiben:

In diesem Beispiel gibt es einige interessante Dinge zu beachten. Wir haben TypeScript erlaubt schließen der Rückgabetyp der längsten . Der Rückschluss auf den Rückgabetyp funktioniert auch bei generischen Funktionen.

Da wir Type auf < length: number > beschränkt haben, durften wir auf die Eigenschaft .length der Parameter a und b zugreifen. Ohne die Typeinschränkung könnten wir nicht auf diese Eigenschaften zugreifen, da die Werte möglicherweise ein anderer Typ ohne Längeneigenschaft waren.

Die Typen von longArray und longString wurden basierend auf den Argumenten abgeleitet. Denken Sie daran, dass es bei Generika darum geht, zwei oder mehr Werte mit demselben Typ in Beziehung zu setzen!

Schließlich wird der Aufruf an längste(10, 100) wie gewünscht abgelehnt, da der Nummerntyp keine .length-Eigenschaft hat.

Arbeiten mit eingeschränkten Werten

Hier ist ein häufiger Fehler beim Arbeiten mit generischen Einschränkungen:

Es könnte so aussehen, als ob diese Funktion in Ordnung ist - Type ist auf < length: number > beschränkt, und die Funktion gibt entweder Type oder einen Wert zurück, der dieser Beschränkung entspricht. Das Problem ist, dass die Funktion verspricht, die zurückzugeben gleich Art von Objekt, wie es übergeben wurde, nicht nur etwas Objekt, das der Einschränkung entspricht. Wenn dieser Code legal wäre, könnten Sie Code schreiben, der definitiv nicht funktionieren würde:

Angeben von Typargumenten

TypeScript kann normalerweise die beabsichtigten Typargumente in einem generischen Aufruf ableiten, aber nicht immer. Nehmen wir zum Beispiel an, Sie haben eine Funktion geschrieben, um zwei Arrays zu kombinieren:

Normalerweise wäre es ein Fehler, diese Funktion mit nicht übereinstimmenden Arrays aufzurufen:

Wenn Sie dies jedoch beabsichtigen, können Sie Typ manuell angeben:

Richtlinien zum Schreiben guter generischer Funktionen

Das Schreiben von generischen Funktionen macht Spaß, und es kann leicht sein, sich von Typparametern hinreißen zu lassen. Wenn Sie zu viele Typparameter verwenden oder Einschränkungen dort verwenden, wo sie nicht benötigt werden, können die Inferenz weniger erfolgreich und die Aufrufer Ihrer Funktion frustrierend sein.

Typparameter nach unten drücken

Hier sind zwei Möglichkeiten, eine Funktion zu schreiben, die ähnlich aussieht:

Diese mögen auf den ersten Blick identisch erscheinen, aber firstElement1 ist eine viel bessere Möglichkeit, diese Funktion zu schreiben. Sein abgeleiteter Rückgabetyp ist Type , aber der abgeleitete Rückgabetyp von firstElement2 ist beliebig, da TypeScript den arr[0]-Ausdruck mithilfe des Einschränkungstyps auflösen muss, anstatt darauf zu warten, das Element während eines Aufrufs aufzulösen.

Regel: Verwenden Sie nach Möglichkeit den Typparameter selbst, anstatt ihn einzuschränken

Verwenden Sie weniger Typparameter

Hier ist ein weiteres Paar ähnlicher Funktionen:

Wir haben einen Typparameter Func erstellt, der bezieht sich nicht auf zwei Werte. Das ist immer ein rotes Flag, weil es bedeutet, dass Aufrufer, die Typargumente angeben möchten, ohne Grund manuell ein zusätzliches Typargument angeben müssen. Func macht nichts anderes, als die Funktion schwerer zu lesen und zu argumentieren!

Regel: Verwenden Sie immer so wenige Typparameter wie möglich

Typparameter sollten zweimal erscheinen

Manchmal vergessen wir, dass eine Funktion möglicherweise nicht generisch sein muss:

Wir hätten genauso gut eine einfachere Version schreiben können:

Denken Sie daran, Typparameter sind für die Arten von mehreren Werten in Beziehung setzen. Wenn ein Typparameter nur einmal in der Funktionssignatur verwendet wird, bezieht er sich nicht auf etwas.

Regel: Wenn ein Typparameter nur an einer Stelle vorkommt, überdenken Sie dringend, ob Sie ihn tatsächlich benötigen

Funktionen in JavaScript benötigen oft eine variable Anzahl von Argumenten. Die toFixed-Zahlenmethode nimmt beispielsweise eine optionale Ziffernzählung an:

Wir können dies in TypeScript modellieren, indem wir den Parameter als . markieren Optional mit? :

Obwohl der Parameter als Typnummer angegeben ist, hat der x-Parameter tatsächlich die Typnummer | undefined, weil nicht spezifizierte Parameter in JavaScript den Wert undefined erhalten.

Sie können auch einen Parameter angeben Standard:

Im Rumpf von f hat x jetzt den Typ Nummer, da jedes undefinierte Argument durch 10 ersetzt wird. Beachten Sie, dass, wenn ein Parameter optional ist, Aufrufer immer undefined übergeben können, da dies einfach ein „fehlendes“ Argument simuliert:

Optionale Parameter in Rückrufen

Sobald Sie sich mit optionalen Parametern und Funktionstypausdrücken vertraut gemacht haben, ist es sehr einfach, beim Schreiben von Funktionen, die Rückrufe aufrufen, die folgenden Fehler zu machen:

Was beabsichtigen die Leute normalerweise, wenn sie einen Index schreiben? als optionaler Parameter ist, dass diese beiden Aufrufe zulässig sein sollen:

Was ist das tatsächlich bedeutet ist das Rückruf kann mit einem Argument aufgerufen werden. Mit anderen Worten, die Funktionsdefinition besagt, dass die Implementierung wie folgt aussehen könnte:

Im Gegenzug wird TypeScript diese Bedeutung erzwingen und Fehler ausgeben, die nicht wirklich möglich sind:

Wenn Sie in JavaScript eine Funktion mit mehr Argumenten aufrufen, als Parameter vorhanden sind, werden die zusätzlichen Argumente einfach ignoriert. TypeScript verhält sich genauso. Funktionen mit weniger Parametern (gleichen Typs) können immer Funktionen mit mehr Parametern ersetzen.

Wenn Sie einen Funktionstyp für einen Callback schreiben, noch nie Schreiben Sie einen optionalen Parameter, es sei denn, Sie beabsichtigen dies Anruf die Funktion, ohne dieses Argument zu übergeben

Einige JavaScript-Funktionen können in einer Vielzahl von Argumenten und Typen aufgerufen werden. Sie können beispielsweise eine Funktion schreiben, um ein Datum zu erzeugen, das entweder einen Zeitstempel (ein Argument) oder eine Angabe von Monat/Tag/Jahr (drei Argumente) akzeptiert.

In TypeScript können wir eine Funktion angeben, die auf verschiedene Weise durch Schreiben aufgerufen werden kann Überladungssignaturen. Schreiben Sie dazu eine Anzahl von Funktionssignaturen (normalerweise zwei oder mehr), gefolgt vom Hauptteil der Funktion:

In diesem Beispiel haben wir zwei Überladungen geschrieben: eine, die ein Argument akzeptiert, und eine andere, die drei Argumente akzeptiert. Diese ersten beiden Signaturen werden als bezeichnet Überladungssignaturen.

Dann haben wir eine Funktionsimplementierung mit einer kompatiblen Signatur geschrieben. Funktionen haben einen Implementierung Signatur, aber diese Signatur kann nicht direkt aufgerufen werden. Obwohl wir eine Funktion mit zwei optionalen Parametern nach dem erforderlichen geschrieben haben, kann sie nicht mit zwei Parametern aufgerufen werden!

Überladungssignaturen und die Implementierungssignatur

Dies ist eine häufige Quelle für Verwirrung. Oft schreiben Leute Code wie diesen und verstehen nicht, warum es einen Fehler gibt:

Auch hier ist die Signatur, die zum Schreiben des Funktionsrumpfs verwendet wird, von außen nicht „sichtbar“.

Die Unterschrift des Implementierung ist von außen nicht sichtbar. Wenn Sie eine überladene Funktion schreiben, sollten Sie immer zwei oder mehr Signaturen über der Implementierung der Funktion.

Die Implementierungssignatur muss auch sein kompatibel mit den Überlastsignaturen. Diese Funktionen weisen beispielsweise Fehler auf, weil die Implementierungssignatur nicht korrekt mit den Überladungen übereinstimmt:

Wie bei Generika gibt es einige Richtlinien, die Sie bei der Verwendung von Funktionsüberladungen beachten sollten. Wenn Sie diese Prinzipien befolgen, wird Ihre Funktion leichter aufrufbar, leichter zu verstehen und einfacher zu implementieren.

Betrachten wir eine Funktion, die die Länge eines Strings oder eines Arrays zurückgibt:

Diese Funktion ist in Ordnung, wir können sie mit Strings oder Arrays aufrufen. Wir können es jedoch nicht mit einem Wert aufrufen, der eine Zeichenfolge sein könnte oder ein Array, da TypeScript einen Funktionsaufruf nur in eine einzelne Überladung auflösen kann:

Da beide Überladungen dieselbe Argumentanzahl und denselben Rückgabetyp haben, können wir stattdessen eine nicht überladene Version der Funktion schreiben:

Das ist viel besser! Aufrufer können dies mit beiden Werten aufrufen, und als zusätzlichen Bonus müssen wir keine korrekte Implementierungssignatur herausfinden.

Bevorzugen Sie nach Möglichkeit immer Parameter mit Unionstypen anstelle von Überladungen

Dies in einer Funktion deklarieren

TypeScript leitet über die Codeflussanalyse ab, was dies in einer Funktion sein soll, zum Beispiel im Folgenden:

TypeScript versteht, dass die Funktion user.becomeAdmin ein entsprechendes this hat, das das äußere Objekt user ist. diese , heh, kann für viele Fälle ausreichen, aber es gibt viele Fälle, in denen Sie mehr Kontrolle darüber benötigen, welches Objekt dies darstellt. Die JavaScript-Spezifikation besagt, dass Sie keinen Parameter namens this haben können, und so verwendet TypeScript diesen Syntaxraum, damit Sie den Typ dafür im Funktionsrumpf deklarieren können.

Dieses Muster ist bei APIs im Callback-Stil üblich, bei denen normalerweise ein anderes Objekt steuert, wann Ihre Funktion aufgerufen wird. Beachten Sie, dass Sie Funktions- und keine Pfeilfunktionen verwenden müssen, um dieses Verhalten zu erhalten:

Andere Typen, die Sie kennen sollten

Es gibt einige zusätzliche Typen, die Sie erkennen sollten, die beim Arbeiten mit Funktionstypen häufig auftreten. Sie können wie alle Typen überall verwendet werden, diese sind jedoch im Zusammenhang mit Funktionen besonders relevant.

void repräsentiert den Rückgabewert von Funktionen, die keinen Wert zurückgeben. Es ist der abgeleitete Typ, wenn eine Funktion keine Rückgabeanweisungen hat oder keinen expliziten Wert von diesen Rückgabeanweisungen zurückgibt:

In JavaScript gibt eine Funktion, die keinen Wert zurückgibt, implizit den Wert undefined zurück. Allerdings sind void und undefined in TypeScript nicht dasselbe. Weitere Details finden Sie am Ende dieses Kapitels.

void ist nicht gleich undefined .

Das Objekt des speziellen Typs bezieht sich auf jeden Wert, der kein Primitiv ist ( string , number , boolean , symbol , null oder undefined ). Das ist anders als die leerer Objekttyp < >, und auch anders als der globale Typ Object . Es ist sehr wahrscheinlich, dass Sie Object nie verwenden werden.

Objekt ist nicht Objekt. Immer Objekt verwenden!

Beachten Sie, dass Funktionswerte in JavaScript Objekte sind: Sie haben Eigenschaften, haben Object.prototype in ihrer Prototypkette, sind eine Instanz von Object , Sie können Object.keys für sie aufrufen und so weiter. Aus diesem Grund werden Funktionstypen in TypeScript als Objekte betrachtet.

Der unbekannte Typ repräsentiert irgendein Wert. Dies ähnelt jedem beliebigen Typ, ist jedoch sicherer, da es nicht legal ist, etwas mit einem unbekannten Wert zu tun:

Dies ist beim Beschreiben von Funktionstypen nützlich, da Sie Funktionen beschreiben können, die einen beliebigen Wert akzeptieren, ohne dass Ihr Funktionsrumpf Werte enthält.

Umgekehrt können Sie eine Funktion beschreiben, die einen Wert unbekannten Typs zurückgibt:

Einige Funktionen noch nie einen Wert zurückgeben:

Der Typ Never steht für Werte, die noch nie beobachtete. In einem Rückgabetyp bedeutet dies, dass die Funktion eine Ausnahme auslöst oder die Ausführung des Programms beendet.

wird auch nie angezeigt, wenn TypeScript feststellt, dass in einer Union nichts mehr übrig ist.

Der globale Typ Function beschreibt Eigenschaften wie bind , call , apply und andere, die für alle Funktionswerte in JavaScript vorhanden sind. Es hat auch die besondere Eigenschaft, dass Werte vom Typ Function immer aufgerufen werden können. Diese Aufrufe geben alle zurück:

Das ist ein untypisierter Funktionsaufruf und wird im Allgemeinen am besten vermieden, da jeder Rückgabetyp unsicher ist.

Wenn Sie eine beliebige Funktion akzeptieren müssen, sie aber nicht aufrufen möchten, ist der Typ () => void im Allgemeinen sicherer.

Ruheparameter und Argumente

Zusätzlich zur Verwendung optionaler Parameter oder Überladungen, um Funktionen zu erstellen, die eine Vielzahl von festen Argumenten akzeptieren können, können wir auch Funktionen definieren, die eine unbegrenzt Anzahl der Argumente mit Ruheparameter.

Ein Rest-Parameter erscheint nach allen anderen Parametern und verwendet die . Syntax:

In TypeScript ist die Typannotation für diese Parameter implizit any[] anstelle von any , und jede angegebene Typannotation muss die Form Array<T> oder T[] oder einen Tupeltyp haben (worüber wir später erfahren werden). .

Umgekehrt können wir zur Verfügung stellen eine variable Anzahl von Argumenten aus einem Array unter Verwendung der Spread-Syntax. Zum Beispiel nimmt die Push-Methode von Arrays eine beliebige Anzahl von Argumenten an:

Beachten Sie, dass TypeScript im Allgemeinen nicht davon ausgeht, dass Arrays unveränderlich sind. Dies kann zu einem überraschenden Verhalten führen:

Die beste Lösung für diese Situation hängt ein wenig von Ihrem Code ab, aber im Allgemeinen ist ein const-Kontext die einfachste Lösung:

Die Verwendung von Rest-Argumenten erfordert möglicherweise das Aktivieren von downlevelIteration, wenn ältere Laufzeiten als Ziel verwendet werden.

Mit der Parameterdestrukturierung können Sie als Argument bereitgestellte Objekte bequem in eine oder mehrere lokale Variablen im Funktionsrumpf entpacken. In JavaScript sieht das so aus:

Die Typannotation für das Objekt folgt der Destrukturierungssyntax:

Dies kann etwas ausführlich aussehen, aber Sie können auch hier einen benannten Typ verwenden:

Zuordenbarkeit von Funktionen

Der Rückgabetyp void für Funktionen kann zu ungewöhnlichem, aber erwartetem Verhalten führen.

Kontextabhängige Eingabe mit dem Rückgabetyp void tut nicht erzwinge Funktionen zu nicht etwas zurückbringen. Eine andere Möglichkeit, dies zu sagen, ist ein kontextbezogener Funktionstyp mit einem void-Rückgabetyp ( type vf = () => void ), der, wenn er implementiert ist, zurückkehren kann irgendein anderen Wert, wird aber ignoriert.

Somit sind folgende Implementierungen vom Typ () => void gültig:

Und wenn der Rückgabewert einer dieser Funktionen einer anderen Variablen zugewiesen wird, behält sie den Typ von void :

Dieses Verhalten ist vorhanden, damit der folgende Code gültig ist, obwohl Array.prototype.push eine Zahl zurückgibt und die Methode Array.prototype.forEach eine Funktion mit dem Rückgabetyp void erwartet.

Es gibt einen weiteren Sonderfall, den Sie beachten müssen: Wenn eine literale Funktionsdefinition einen void-Rückgabetyp hat, muss diese Funktion function nicht alles zurückgeben.

Weitere Informationen zu void finden Sie in diesen anderen Dokumentationseinträgen:

Verengung

Verstehen Sie, wie TypeScript JavaScript-Kenntnisse verwendet, um die Menge der Typsyntax in Ihren Projekten zu reduzieren.

Objekttypen

Wie TypeScript die Formen von JavaScript-Objekten beschreibt.

Die TypeScript-Dokumentation ist ein Open-Source-Projekt. Helfen Sie uns, diese Seiten zu verbessern, indem Sie eine Pull-Anfrage senden ❤


Das Anonym Funktionen

Diese Funktionen werden als anonym bezeichnet, da sie nicht standardmäßig mit dem deklariert werden def Stichwort. Du kannst den ... benutzen Lambda Schlüsselwort, um kleine anonyme Funktionen zu erstellen.

Lambda-Formulare können eine beliebige Anzahl von Argumenten annehmen, geben jedoch nur einen Wert in Form eines Ausdrucks zurück. Sie dürfen keine Befehle oder mehrere Ausdrücke enthalten.

Eine anonyme Funktion kann kein direkter Aufruf von print sein, da Lambda einen Ausdruck erfordert

Lambda-Funktionen haben ihren eigenen lokalen Namespace und können nicht auf andere Variablen als die in ihrer Parameterliste und die im globalen Namespace zugreifen.

Obwohl es scheint, dass Lambdas eine einzeilige Version einer Funktion sind, entsprechen sie nicht Inline-Anweisungen in C oder C++, deren Zweck darin besteht, die Funktionsstapelzuordnung während des Aufrufs aus Leistungsgründen zu übergeben.


Um zu verhindern, dass ein Referenzparameter versehentlich geändert wird, wenn wir ihn wirklich nicht ändern möchten (wir möchten nur Zeit/Speicher sparen), können wir das Schlüsselwort C verwenden const. Beispielsweise:

Wenn eine Funktion keinen Wert zurückliefert, wird dies mit einem speziellen "TYPE" dem Computer mitgeteilt. Der Rückgabetyp ist "void" (alles in Kleinbuchstaben).

Leere Funktionen werden meist in zwei Funktionsklassen verwendet.

Die erste ist eine Funktion, die Informationen ausgibt, die der Benutzer lesen kann. Zum Beispiel (für unsere Zwecke) wird die printf-Funktion als void-Funktion behandelt. (Tatsächlich gibt printf eine ganze Zahl zurück, die die Anzahl der gedruckten Zeichen ist. Aber wir ignorieren diesen Wert fast immer.)


Der Hirnstamm besteht aus dem Mittelhirn und Teilen des Hinterhirns, insbesondere dem Pons und der Medulla. Eine Hauptfunktion des Mittelhirns besteht darin, die drei Hauptabteilungen des Gehirns zu verbinden: Vorderhirn, Mittelhirn und Hinterhirn.

Zu den wichtigsten Strukturen des Mittelhirns gehören das Tektum und der Hirnstiel. Das Tektum besteht aus abgerundeten Ausbuchtungen von Hirnsubstanz, die an visuellen und auditiven Reflexen beteiligt sind. Der Hirnstiel besteht aus großen Bündeln von Nervenfaserbahnen, die das Vorderhirn mit dem Hinterhirn verbinden.

Das Hinterhirn besteht aus zwei Unterregionen, die als Metencephalon und Myelencephalon bekannt sind. Das Metencephalon besteht aus dem Pons und dem Kleinhirn. Der Pons hilft bei der Regulierung der Atmung sowie bei Schlaf- und Erregungszuständen.

Das Kleinhirn leitet Informationen zwischen Muskeln und Gehirn weiter. Das Myelencephalon besteht aus der Medulla oblongata und verbindet das Rückenmark mit höheren Hirnregionen. Die Medulla hilft auch, autonome Funktionen wie Atmung und Blutdruck zu regulieren.


Was sind die Hauptfunktionen der Muskulatur?

Die Muskulatur besteht aus verschiedenen Muskeltypen, die jeweils eine entscheidende Rolle für die Funktion des Körpers spielen.

Muskeln ermöglichen es einer Person, sich zu bewegen, zu sprechen und zu kauen. Sie kontrollieren Herzschlag, Atmung und Verdauung. Andere scheinbar nicht verwandte Funktionen, einschließlich der Temperaturregulierung und des Sehvermögens, hängen ebenfalls von der Muskulatur ab.

Lesen Sie weiter, um mehr über die Muskulatur und ihre Steuerung des Körpers zu erfahren.

Auf Pinterest teilen Die Muskeln machen etwa 40 Prozent des Körpergewichts aus, wobei der größte Muskel des Körpers der Gesäßmuskel ist.

Die Muskulatur enthält mehr als 600 Muskeln, die zusammenarbeiten, um die volle Funktion des Körpers zu ermöglichen.

Es gibt 3 Arten von Muskeln im Körper:

Skelettmuskulatur

Skelettmuskeln sind die einzigen Muskeln, die bewusst gesteuert werden können. Sie sind an Knochen befestigt, und das Zusammenziehen der Muskeln bewirkt eine Bewegung dieser Knochen.

Jede Handlung, die eine Person bewusst ausführt, beinhaltet den Einsatz von Skelettmuskeln. Beispiele für solche Aktivitäten sind Laufen, Kauen und Schreiben.

Glatte Muskelzellen

Glatte Muskulatur kleidet das Innere von Blutgefäßen und Organen wie dem Magen aus und wird auch als Eingeweidemuskulatur bezeichnet.

Es ist der schwächste Muskeltyp, spielt jedoch eine wesentliche Rolle bei der Bewegung der Nahrung durch den Verdauungstrakt und der Aufrechterhaltung der Blutzirkulation durch die Blutgefäße.

Glatte Muskulatur wirkt unwillkürlich und kann nicht bewusst gesteuert werden.

Herzmuskel

Der Herzmuskel befindet sich nur im Herzen und pumpt Blut durch den Körper. Der Herzmuskel stimuliert seine eigenen Kontraktionen, die unseren Herzschlag bilden. Signale des Nervensystems steuern die Kontraktionsrate. Dieser Muskeltyp ist stark und wirkt unwillkürlich.

Die Hauptfunktionen der Muskulatur sind:

1. Mobilität

Die Hauptfunktion der Muskulatur besteht darin, Bewegung zu ermöglichen. Wenn sich Muskeln zusammenziehen, tragen sie zu groben und feinen Bewegungen bei.

Grobe Bewegung bezieht sich auf große, koordinierte Bewegungen und umfasst:

Feine Bewegung umfasst kleinere Bewegungen, wie zum Beispiel:

Für diese Art von Aktion sind normalerweise die kleineren Skelettmuskeln verantwortlich.

Die meisten Muskelbewegungen des Körpers werden bewusst gesteuert. Einige Bewegungen sind jedoch reflexartig, z. B. das Zurückziehen einer Hand von einer Wärmequelle.

2. Stabilität

Muskelsehnen erstrecken sich über Gelenke und tragen zur Gelenkstabilität bei. Muskelsehnen im Kniegelenk und im Schultergelenk sind entscheidend für die Stabilisierung.

Die Rumpfmuskulatur ist die des Bauches, des Rückens und des Beckens, sie stabilisiert auch den Körper und hilft bei Aufgaben wie dem Heben von Gewichten.

3. Körperhaltung

Die Skelettmuskulatur hilft, den Körper beim Sitzen oder Stehen in der richtigen Position zu halten. Dies wird als Haltung bezeichnet.

Eine gute Körperhaltung hängt von starken, flexiblen Muskeln ab. Steife, schwache oder angespannte Muskeln tragen zu einer schlechten Haltung und Fehlausrichtung des Körpers bei.

Langfristige Fehlhaltungen führen zu Gelenk- und Muskelschmerzen in Schultern, Rücken, Nacken und anderswo.

4. Auflage

Das Herz ist ein Muskel, der Blut durch den Körper pumpt. Die Bewegung des Herzens liegt außerhalb der bewussten Kontrolle und zieht sich automatisch zusammen, wenn es durch elektrische Signale stimuliert wird.

Die glatte Muskulatur in den Arterien und Venen spielt eine weitere Rolle bei der Blutzirkulation im Körper. Diese Muskeln halten den Blutdruck und die Durchblutung bei Blutverlust oder Dehydration aufrecht.

Sie dehnen sich aus, um den Blutfluss in Zeiten intensiven Trainings zu erhöhen, wenn der Körper mehr Sauerstoff benötigt.

5. Atmung

Beim Atmen wird der Zwerchfellmuskel verwendet.

Das Zwerchfell ist ein kuppelförmiger Muskel, der sich unterhalb der Lunge befindet. Wenn sich das Zwerchfell zusammenzieht, drückt es nach unten, wodurch die Brusthöhle größer wird. Die Lunge füllt sich dann mit Luft. Wenn sich der Zwerchfellmuskel entspannt, drückt er Luft aus der Lunge.

Wenn jemand tiefer atmen möchte, braucht es Hilfe von anderen Muskeln, einschließlich derjenigen im Bauch, Rücken und Nacken.

6. Verdauung

Glatte Muskulatur im Magen-Darm-Trakt oder Magen-Darm-Trakt steuert die Verdauung. Der GI-Trakt erstreckt sich vom Mund bis zum Anus.

Nahrung bewegt sich durch das Verdauungssystem mit einer wellenartigen Bewegung, die als Peristaltik bezeichnet wird. Muskeln in den Wänden der Hohlorgane ziehen sich zusammen und entspannen sich, um diese Bewegung zu verursachen, die Nahrung durch die Speiseröhre in den Magen schiebt.

Der obere Muskel im Magen entspannt sich, um Nahrung aufzunehmen, während die unteren Muskeln Nahrungspartikel mit Magensäure und Enzymen mischen.

Die verdaute Nahrung gelangt durch Peristaltik vom Magen in den Darm. Von hier aus ziehen sich weitere Muskeln zusammen, um die Nahrung als Stuhl aus dem Körper zu transportieren.

7. Urinieren

Das Harnsystem umfasst sowohl die glatte als auch die Skelettmuskulatur, einschließlich derjenigen in:

  • Blase
  • Nieren
  • Penis oder Vagina
  • Prostata
  • Harnleiter
  • Harnröhre

Die Muskeln und Nerven müssen zusammenarbeiten, um den Urin aus der Blase zu halten und abzugeben.

Harnprobleme, wie eine schlechte Blasenkontrolle oder Harnverhaltung, werden durch eine Schädigung der Nerven verursacht, die Signale an die Muskeln weiterleiten.

8. Geburt

Die glatte Muskulatur der Gebärmutter dehnt sich während der Geburt aus und zieht sich zusammen. Diese Bewegungen drücken das Baby durch die Vagina. Außerdem hilft die Beckenbodenmuskulatur, den Kopf des Babys durch den Geburtskanal zu führen.

9. Vision

Sechs Skelettmuskeln um das Auge herum steuern seine Bewegungen. Diese Muskeln arbeiten schnell und präzise und ermöglichen dem Auge:

Wenn jemand seine Augenmuskeln verletzt, kann dies seine Sehkraft beeinträchtigen.

10. Organschutz

Muskeln im Rumpf schützen die inneren Organe an der Vorder-, Seiten- und Rückseite des Körpers. Die Knochen der Wirbelsäule und der Rippen bieten zusätzlichen Schutz.

Muskeln schützen auch die Knochen und Organe, indem sie Stöße absorbieren und die Reibung in den Gelenken reduzieren.

11. Temperaturregulierung

Die Aufrechterhaltung einer normalen Körpertemperatur ist eine wichtige Funktion der Muskulatur. Fast 85 Prozent der Wärme, die ein Mensch in seinem Körper erzeugt, stammt aus der Kontraktion der Muskeln.

Wenn die Körperwärme unter das optimale Niveau fällt, erhöhen die Skelettmuskeln ihre Aktivität, um Wärme zu erzeugen. Zittern ist ein Beispiel für diesen Mechanismus. Die Muskeln in den Blutgefäßen ziehen sich ebenfalls zusammen, um die Körperwärme aufrechtzuerhalten.

Durch die Entspannung der glatten Muskulatur in den Blutgefäßen kann die Körpertemperatur wieder in den Normalbereich gebracht werden. Diese Aktion erhöht die Durchblutung und gibt überschüssige Wärme durch die Haut ab.

  1. Muskeln machen etwa 40 Prozent des Gesamtgewichts aus.
  2. Das Herz ist der am härtesten arbeitende Muskel des Körpers. Es pumpt 5 Liter Blut pro Minute und 2.000 Gallonen täglich.
  3. Der Gesäßmuskel ist der größte Muskel des Körpers. Es befindet sich im Gesäß und hilft dem Menschen, eine aufrechte Haltung zu bewahren.
  4. Das Ohr enthält neben den kleinsten Knochen die kleinsten Muskeln des Körpers. Diese Muskeln halten das Innenohr zusammen und sind mit dem Trommelfell verbunden.
  5. Ein Muskel namens Masseter im Kiefer ist der stärkste Muskel nach Gewicht. Es ermöglicht das Schließen der Zähne mit einer Kraft von bis zu 55 Pfund an den Schneidezähnen oder 200 Pfund an den Backenzähnen.

Unten ist ein 3-D-Modell des Muskelsystems, das vollständig interaktiv ist.

Erkunden Sie das Modell mit Ihrem Mauspad oder Touchscreen, um mehr über das Muskelsystem zu erfahren.

Muskeln sind an allen Funktionen des Körpers beteiligt, vom Herzschlag über die Atmung bis hin zum Laufen und Springen. Wenn Muskeln beschädigt werden, kann dies Auswirkungen auf Bewegung, Sprache und vieles mehr haben.

Mehrere Erkrankungen, darunter Fibromyalgie, Multiple Sklerose und Parkinson-Krankheit, beeinträchtigen den reibungslosen Ablauf des Muskelsystems.

Eine Person sollte einen Arzt aufsuchen, wenn sie Anzeichen von Muskelschwäche oder Schmerzen bemerkt, die sie nicht erklären kann. Ein Arzt kann das Problem klären und einen geeigneten Behandlungsplan erstellen.