Domanda

un rapido, facile domanda probabilmente la cui risposta è probabilmente "best practice"

viene utilizzato

Sto seguendo un tutorial per un cellulare Safari webapp custom-modello, e per cambiare vista intorno a questo codice:

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

La mia domanda è solo l'istruzione condizionale if. Che cosa è questa tripletta dire, e perché ciascuna di queste cose devono essere verificate prima che la vista può essere cambiato? Ha views.object solo test per vedere se la variabile di vista risponde al metodo di oggetto? Perché questo è importante?

Modifica - Questo è / era il punto principale di questa domanda, e non considera Javascript come linguaggio e come loop if funziona, ma piuttosto PERCHE queste 3 cose specificamente bisogno di essere controllato:

In quali scenari potrebbero views e front non esiste?

Io in genere non scrivo il mio codice in modo ridondante. Se il nome del mio tavolo MySQL non sta cambiando, mi limiterò a dire UPDATE 'mytable' WHERE... al posto del ben più dettagliato (e, a mio avviso, ridondante)

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

considerando che se il nome della tabella (o nell'esempio JS, i nomi della vista) non sono "hard coded", ma sono invece un input dell'utente o in altro modo mutevole, potrei raddrizzare il mio codice come l'esempio DashCode ha. Allora dimmi, possono questi valori "andare male" comunque?

Grazie!

È stato utile?

Soluzione

Il caso sta testando questi 3 puntatori per assicurarsi che essi non sono nulli. Un puntatore nullo è 0 che converte falso. Se uno qualsiasi di quei 3 pointer sono 0 (null) allora non cercherà di usarli.

Non sono sicuro di quello che dereferenziazione un puntatore nullo fa in Javascript, ma è un errore e può causare un'eccezione. Il caso è solo di evitare questa possibilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top