Die Syntax für if else
ist so etwas wie:
if
Anweisungelse
Anweisung
Die generische "Aussage" es so etwas wie eine einfache Zuordnung Ausdruck sein kann, eine einzige Funktionsaufruf oder Block einer oder mehrerer der in { }
enthaltenen Anweisungen. Somit sind die { }
nicht Teil der syntaktischen Struktur der if
-Anweisung. Sie sind Teil der allgemeinen und oft verwendeten zusammengesetzte Aussage. (JavaScript kann dies formal als etwas anderes bezeichnen; es ist jedoch eine gewöhnliche Sache und der Name ist nicht so wichtig. bearbeiten Ein Kommentar merkt an, dass es formal eine "Block-Aussage" ist, aber ich denke, "Verbindung" ist beschreibender. ll lassen es in.) Eine geschweifte zusammengesetzte Aussage enthält eine beliebige Anzahl von anderen Aussagen, aber von außen umfasst es nur eine Aussage.
Der else
Teil der if
Anweisung optional ist, so
if
Anweisung
ist auch in Ordnung. So
, in Ihre Beispiele:
if (boo)
console.log(a);
Die console.log(a);
ist die einzige Erklärung. Im zweiten Beispiel:
var boo = true;
if(boo == true){
console.log("a");
}else{
console.log("not true");
}
es ist eine else
Klausel, und sowohl die if
und die else
haben zusammengesetzte Anweisungen, die Rolle der einzelnen Anweisung in der formalen Syntax zu spielen.
Wie genau der Parser das versteht, das ist ein großes Thema. Es genügt zu sagen, dass Programmiersprachen so eindeutig wie möglich gestaltet sind, so dass der Code zum Parsen des Rohtextes eines Programms so einfach wie möglich sein kann. Natürlich ist, wie bei allem, kein solches Design perfekt, und insbesondere JavaScript weist Syntaxmerkmale auf, die überraschend schwer zu analysieren sind. Wovon wir hier reden, gehört jedoch nicht dazu. Der ganze Zweck des { }
Wrappers um eine zusammengesetzte Anweisung besteht darin, dem Parser ein klares Signal zu geben: Hier kommt eine zusammengesetzte Aussage.
[truthy] (https://developer.mozilla.org/en- US/docs/Glossar/Truthy) und [if/else] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else) – epascarello