Pergunta

Uma pergunta rápida, provavelmente fácil, cuja resposta é provavelmente "melhor prática"

Estou seguindo um tutorial para um aplicativo de Safari Mobile Safari personalizado e para alterar as visualizações sobre este código é usado:

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

Minha pergunta é apenas sobre o if afirmação condicional. O que esse trigêmeo está dizendo e por que cada uma dessas coisas precisa ser verificada antes que a vista possa ser alterada? Faz views.object Basta testar para ver se a variável de visualizações responde ao método do objeto? Por que isso é importante?

EDITAR - Este é/foi o ponto principal desta questão, e não se considera JavaScript como um idioma e como if Loops funcionam, mas por que essas três coisas precisam ser verificadas:

Em que cenários podem views e front não existe?

Normalmente não escrevo meu código de maneira tão redundante. Se o nome da minha tabela MySQL não estiver mudando, vou apenas dizer UPDATE 'mytable' WHERE... em vez do muito mais detalhado (e na minha opinião, redundante)

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

Considerando que, se o nome da tabela (ou no exemplo do JS, os nomes da visualização) não forem "codificados", mas, em vez disso, são uma entrada do usuário ou, de outra forma, eu posso corrigir meu código como o exemplo do código de painel. Então me diga, esses valores podem "dar errado" de qualquer maneira?

Obrigado!

Foi útil?

Solução

O IF está testando esses três indicadores para garantir que não sejam nulos. Um ponteiro nulo é 0 que se converte para falso. Se algum desses 3 ponteiros for 0 (nulo), ele não tentará usá -los.

Não tenho certeza do que a desreferencia um ponteiro nulo faz no JavaScript, mas é um erro e pode causar uma exceção. O IF está apenas evitando essa possibilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top