быстрый, возможно, простой вопрос, ответ на который, вероятно, "лучшая практика"
Я следую учебному пособию для мобильного веб-приложения Safari по пользовательскому шаблону, и для изменения представлений об этом коде используется:
function btnSave_ClickHandler(event)
{
var views = document.getElementById('stackLayout');
var front = document.getElementById('mainScreen');
if (views && views.object && front) {
views.object.setCurrentView(front, true);
}
}
Мой вопрос как раз об условном утверждении if
. О чем говорит этот триплет, и почему необходимо проверить каждую из этих вещей, прежде чем можно будет изменить представление? views.object
просто проверяет, отвечает ли переменная views методу объекта? Почему это важно?
РЕДАКТИРОВАТЬ - Это был / был основной вопрос этого вопроса, и он касается не Javascript как языка, а того, как работают циклы if
, а, скорее, ПОЧЕМУ необходимо проверить эти 3 вещи:
При каких сценариях views
и front
могут не существовать?
Обычно я не пишу свой код так избыточно. Если имя моей таблицы MySQL не меняется, я просто скажу UPDATE 'mytable' WHERE...
вместо гораздо более многословного (и, на мой взгляд, избыточного)
$mytable = "TheSQLTableName";
if ($mytable == an actual table && $mytable exists && entries can be updated){
UPDATE $mytable;
}
Принимая во внимание, что если имя таблицы (или в примере JS, имена представлений) НЕ «жестко запрограммировано», а вместо этого является пользовательским вводом или иным образом изменяемым, я мог бы исправить свой код, как это имеет пример DashCode. Так скажите мне, могут ли эти значения "пойти не так" в любом случае?
Спасибо!