javascript - Dashcode 代码翻译

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

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

我正在关注自定义模板移动 Safari Web 应用程序的教程,并使用以下代码更改 View :

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 条件语句。这三元组说了什么?为什么在改变 View 之前需要验证每一件事? 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 示例中, View 的名称)不是“硬编码”而是用户输入或其他可变的,我可能会像 DashCode 示例那样更正我的代码。那么告诉我,这些值无论如何都会“出错”吗?

谢谢!

最佳答案

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

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

关于javascript - Dashcode 代码翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282552/

相关文章:

javascript - 如何在事件中使用异步等待?

javascript - 在项目单击上渲染 View 模型

iphone - 在 iPhone 中添加自定义 AnnotationView

javascript - 使用javascript检测视口(viewport)宽度是否大于Mobile Safari上的可见宽度

javascript - 将 Zeroclipboard.js 与 Meteor.js 结合使用

javascript - 转到 Web Essentials 中的定义

iphone - iOS模拟内存警告问题

iphone - 用新的 iOS 5 Accounts.framework 替换用户名/密码

javascript - Mobile Safari 滚动到底部以加载更多内容,例如 Facebook

javascript - 在 iOS 7 Safari 中,如何通过边缘滑动与后退/前进按钮区分 popstate 事件?