Heim > Web-Frontend > js-Tutorial > Zuordnung innerhalb einer Bedingung

Zuordnung innerhalb einer Bedingung

Jennifer Aniston
Freigeben: 2025-03-06 00:52:18
Original
506 Leute haben es durchsucht

Assignment inside a Condition

Zuordnung innerhalb einer Bedingung

Es ist sehr häufig in PHP Um den Code so geschrieben zu sehen:
if($summary = get_post_summary())
{
    return $summary;
}
Nach dem Login kopieren
Ich beziehe mich auf die Zuordnung in einer Bedingung. Laumig genug, kann es auch in JavaScript erfolgen, obwohl es weitaus seltener ist:
if(summary = document.getElementById("post-summary"))
{
    return summary.innerHTML;
}
Nach dem Login kopieren
Auf den ersten Blick wird Ihnen vergeben, dass Sie denken, dass dies ein Tippfehler ist! In der Tat werden einige Debugger das mit einer Warnung kennzeichnen und fragen, ob Sie einen Test für Gleichheit (==) gemeint haben, und sie als Zuordnung (=) verwandelt. Aber es ist kein Fehler - der Schlüssel zum Verständnis ist es, zwei Dinge zu verstehen: Zunächst gibt Zuweisung einen Wert zurück (den von Ihnen zugewiesenen Wert). Zweitens und vor allem, dass der von ihm zurückgegebene Wert an True oder False bewertet und letztendlich bestimmt, ob die Bedingung passiert. In der Welt der DOM -Antechnik und -verfolgung ist diese Technik sicher und vorhersehbar, da DOM -Knoten entweder existieren oder sie null sind - und Null ist erforderlich, um auf False zu bewerten . In dem obigen Codebeispiel wird die Bedingung so bewertet, dass das Element "#postsummary" oder falsch ist, wenn dies nicht der Fall ist. Ebenso können Sie den gleichen Trick verwenden, um eine unbekannte Hierarchie zu iterieren, die durch aufeinanderfolgende Eltern durchquert, wobei () verwendet werden. Dieses Beispiel erstellt ein Array jedes Knotennamens zwischen einem Ereignisziel und dem #Document:
var names = [], node = e ? e.target : event.srcElement;
do
{
    names.push(node.nodeName);
}
while(node = node.parentNode)
Nach dem Login kopieren
Aber an anderer Stelle in JavaScript könnten Sie sich in einem viel weniger zuverlässigen Gebiet befinden, denn wie wahr oder wie falsch viele Werte sind, ist überhaupt nicht intuitiv. Sowohl positive als auch negative Zahlen bewerten beispielsweise auf True, außer Null und Nan . Und bizarr, ein Objekt Erstellt mit dem booleschen Konstruktor immer bewertet auf true, auch wenn es als neuer Boolescher (Falsch) erstellt wurde! Also seien Sie gewarnt! Syntax wie diese ist nicht für schwache Nerven; Es sollte auch nicht auf kavalierische Weise verwendet werden, wobei die Typumwandlung und das Gießen willkürlicher Werte überschritten werden. Aber unter geeigneten Umständen gut verwendet, kann es viele Bedingungen vereinfachen, um einen schnelleren und schlanken Code zu erzeugen.

Thumbnail -Gutschrift: sbwoodside

häufig gestellte Fragen (FAQs) zur Zuordnung innerhalb einer Bedingung

Was ist eine Zuordnung innerhalb einer Bedingung in der Programmierung? Dies ist eine übliche Praxis in vielen Programmiersprachen, einschließlich JavaScript, C und Python. Es ermöglicht einen präzisen Code als Zuweisung und die Bedingungsüberprüfung kann in einer einzigen Zeile durchgeführt werden. Es kann jedoch auch zu Verwirrung und potenziellen Fehlern führen, wenn sie nicht sorgfältig verwendet werden, da der Zuordnungsvorgang möglicherweise mit einem Vergleichsvorgang verwechselt wird.

Warum wird es als schlechte Praxis angesehen, Zuordnungen in bedingten Ausdrücken durchzuführen? Dies liegt daran, dass der Zuordnungsoperator (=) leicht mit dem Gleichstellungsoperator (==) verwechselt werden kann. Infolgedessen konnte eine Bedingung, die ein Vergleich sein sollte, versehentlich zu einer Aufgabe werden, was zu unerwarteten Verhaltensweisen im Code führt. Darüber hinaus können Zuweisungen in Bedingungen schwieriger zu lesen und zu verstehen, insbesondere für weniger erfahrene Programmierer.

Wie kann ich Zuordnungen in bedingten Ausdrücken vermeiden? Anstatt zu schreiben, wenn (x = getValue ()), können Sie x = getValue () schreiben; if (x). Dies macht den Code klarer und verringert das Risiko von Verwirrung oder Fehler. In einer Schleife, in der ein Wert in jeder Iteration aktualisiert und überprüft werden muss, kann beispielsweise eine Zuordnung in der Bedingung den Code präzise machen. Dies sollte jedoch mit Vorsicht erfolgen und der Code sollte eindeutig kommentiert werden, um Verwirrung zu vermeiden. Zum Beispiel weist x = 5 den Wert 5 der Variablen x zu. Andererseits wird der Gleichstellungsoperator (==) verwendet, um zwei Werte zu vergleichen. Wenn (x == 5) beispielsweise prüft, ob der Wert von x gleich 5 ist. TypeScript hat jedoch eine strengere Überprüfung des Typs, die dazu beitragen können, potenzielle Fehler zu erfassen, die durch Zuordnungen unter Bedingungen verursacht werden. Wenn Sie beispielsweise versuchen, eine Zeichenfolge einer Variablen zuzuweisen, die sich in einer Bedingung befinden soll, gibt TypeScript einen Kompilierungszeitfehler an. Wenn (x = 5) beispielsweise immer wahr sein wird, da es X zugewiesen wird, anstatt zu überprüfen, ob x gleich 5 ist. Dies kann zu unerwartetem Verhalten im Code führen. Ein Ansatz besteht darin, alle bedingten Aussagen sorgfältig zu überprüfen, um sicherzustellen, dass sie die richtigen Operatoren verwenden. Die Verwendung eines Linters oder eines statischen Codeanalyse -Tools kann auch dazu beitragen, diese Probleme zu erfassen.

Können Zuordnungen in Bedingungen in allen Programmiersprachen verwendet werden? Beispielsweise erlaubt Python keine Zuordnungen unter Bedingungen und liefert einen Syntaxfehler, wenn Sie dies versuchen. Überprüfen Sie immer die Syntaxregeln der von Ihnen verwendeten Programmiersprache.

Gibt es Alternativen zu Aufgaben unter Bedingungen? Eine häufige Alternative ist die Verwendung einer temporären Variablen, um den Wert zu halten, der zugewiesen und überprüft werden muss. Dadurch kann der Code klarer und einfacher zu verstehen. Eine andere Alternative besteht darin, eine Funktion zu verwenden, die einen Wert zurückgibt, und diesen Wert dann in der Bedingung zu überprüfen.

Das obige ist der detaillierte Inhalt vonZuordnung innerhalb einer Bedingung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage