Nesting om annat uttalanden hjälper till att organisera och isolera förhållanden för att undvika att testa samma tillstånd två gånger eller för att minimera antalet gånger olika test behöver utföras.
Genom att använda om uttalanden med både jämförelse och logiska operatörer, kan vi ställa in kod som körs om en specifik kombination av villkor är uppfylld. Vi vill inte alltid testa hela villkoret för att köra en uppsättning uttalanden om hela testet är sant och ett annat om det är falskt. Vi kanske vill välja mellan flera olika uttalanden, beroende på vilken särskild kombination av villkor som är sanna.
Anta till exempel att vi har tre värden att jämföra och vill ställa in olika resultat beroende på vilka av värdena som är lika. Följande exempel visar hur vi kan bo om uttalanden att testa för detta (i fetstil nedan)
var svar;
if (a == b)
if (a == c)
annat
if (a == c)
answer = "a och c är lika";
annat
if (b == c)
Så här logiken fungerar här är:
if (a == b)), sedan kontrollerar programmet om kapslade om tillstånd (
if (a == c)). Om det första villkoret är felaktigt stöter programmet till annan tillstånd.
Här är några saker att märka hur detta kodas:
Vi kan förenkla ett avsnitt av den här koden något för att undvika att hoppa om uttalanden ganska lika mycket. Där en hel annars blockera består av en singel om uttalande, kan vi utelämna hängslen runt det blocket och flytta om konditionera sig upp på samma linje som annan, använder villkoret "annat om". Till exempel:
var svar;
if (a == b)
if (a == c)
answer = "alla är lika";
annat
answer = "a och b är lika";
annars om (a == c)
annat
answer = "alla är olika";
kapslad om då uttalanden är vanliga på alla programmeringsspråk, inte bara JavaScript. Nybörjeprogrammerare använder ofta flera om då eller om annat uttalanden snarare än att häcka dem. Medan den här typen av kod kommer att fungera, kommer den snabbt att vara ordbok och kommer att duplicera villkoren. Häckning av villkorade uttalanden skapar mer tydlighet kring programmets logik och resulterar i kortfattad kod som kan köras eller sammanställas snabbare.