Frage

eine schnelle, wahrscheinlich einfache Frage, deren Antwort ist wahrscheinlich "best practice"

Ich folge ein Tutorial für eine benutzerdefinierte-Vorlage mobile Safari-Webapp, und zu ändern Ansichten um diesen Code verwendet wird:

function btnSave_ClickHandler(event)
{
    var views = document.getElementById('stackLayout');
    var front = document.getElementById('mainScreen');
    if (views && views.object && front) {
        views.object.setCurrentView(front, true);
    }
}

Meine Frage ist nur über die if bedingte Anweisung. Was ist das Triplett sagen, und warum jedes dieser Dinge tun müssen, bevor die Ansicht überprüft werden kann geändert werden? Hat views.object nur testen, ob die Ansichten Variable reagiert auf die Objektmethode zu sehen? Warum ist das wichtig?

Bearbeiten - Das ist / war der Hauptpunkt dieser Frage, und es in Bezug auf nicht Javascript als Sprache und wie if Schleifen Arbeit, sondern vielmehr, warum diese drei Dinge speziell müssen geprüft werden:

Unter welchen Szenarien könnte views und front nicht existieren?

ich normalerweise nicht meinen Code schreiben, so redundant. Wenn der Name meiner MySQL-Tabelle nicht ändern, werde ich nur sagen UPDATE 'mytable' WHERE... statt dem viel ausführlichen (und meiner Meinung nach, redundant)

$mytable = "TheSQLTableName";
if ($mytable == an actual table && $mytable exists && entries can be updated){
    UPDATE $mytable;
}

Während, wenn der Name der Tabelle (oder im JS Beispiel die Namen der Ansicht) nicht „hart codiert“, sondern sind stattdessen eine Benutzereingabe oder auf andere Weise wandelbar, könnte ich meinen Code rechts, wie das Dashcode Beispiel hat es. Also sagen Sie mir, können diese Werte „schief gehen“ eigentlich?

Danke!

War es hilfreich?

Lösung

Die if testet diese drei Zeiger um sicherzustellen, dass sie nicht-null. Ein Null-Zeiger 0 ist, das umwandelt auf falsch. Ist einer dieser 3-Zeiger sind 0 (null), dann wird es nicht versuchen, sie zu nutzen.

Ich bin nicht sicher, was einen Null-Zeiger zu dereferenzieren tut in Javascript, aber es ist ein Fehler und kann eine Ausnahme verursachen. Die if vermeidet nur diese Möglichkeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top