1

一个快速,可能很简单的问题,其答案可能是“最佳实践”

我正在关注自定义模板移动 Safari webapp 的教程,并使用以下代码更改视图:

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循环如何工作,而是为什么需要特别检查这三件事:

在什么情况下可能存在viewsfront不存在?

我通常不会如此冗余地编写我的代码。如果我的 MySQL 表的名称没有改变,我只会说UPDATE 'mytable' WHERE...而不是更冗长(在我看来,多余的)

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

而如果表的名称(或在 JS 示例中,视图的名称)不是“硬编码”而是用户输入或其他可变的,我可能会像 DashCode 示例那样正确地编写我的代码。那么告诉我,这些价值观无论如何都会“出错”吗?

谢谢!

4

1 回答 1

1

if 正在测试这 3 个指针以确保它们不为空。空指针为 0,它转换为 false。如果这 3 个指针中的任何一个为 0(空),则它不会尝试使用它们。

我不确定在 Javascript 中取消引用空指针有什么作用,但这是一个错误,可能会导致异常。if 只是在避免这种可能性。

于 2010-02-18T22:21:59.947 回答