Dashcode代码转换

时间:2010-02-17 16:44:33

标签: javascript iphone mobile-safari dashcode iphone-web-app

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

我正在关注自定义模板移动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只是测试view变量是否响应对象方法?为什么这很重要?

编辑 - 这是/这个问题的主要观点,它不是将Javascript视为一种语言,而是if循环如何工作,而是为什么这3项内容特别需要检查:

viewsfront不存在的情况下?

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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