北方站长站
客服热线:0632-5117766

Javascript教程:展示风格的价值

[2008-03-21 14:44:15] 作者:Northz会员wbin 来源:北方站长论坛

Tags:价值 风格 展示 教程 if 我们 一个 code else var function

  

qLN北方站长站

我们使用习惯用法可以使我们的意图更加的清晰和简洁。 qLN北方站长站

使用==时,当心强制转换 Webjx.Com qLN北方站长站

考虑下面函数: qLN北方站长站

 

 function gw(f) {qLN北方站长站
    if (d.w.sv.checked == true) {qLN北方站长站
        zv = 'on';qLN北方站长站
    } else {qLN北方站长站
        zv = 'off';qLN北方站长站
    }qLN北方站长站
    procframe.location.replace("http://b.www.yahoo.com/module/wtr_tr.php?p=" +qLN北方站长站
        escape(f.p.value) + "&sv=" + zv);qLN北方站长站
    return false;qLN北方站长站
}
qLN北方站长站

==运算符不应该被用着和true比较值,因为它要执行强制转换。如果我们想确定d.w.sv.checked是否是布尔值qLN北方站长站
true,我们必须用===运算符。如果我们仅在意一个值是真实存在的不是假的,最好不要用相等运算符。 qLN北方站长站

例如,由于强制转换:1 == true是真,1 === true是假。==运算符隐藏了类型错误。 qLN北方站长站

使用?:运算符选择两值之一 qLN北方站长站

if语句通常被用来从两个值中选择一个。这应该是三元操作符?:最适合的。 qLN北方站长站

 zv = d.w.sv.checked ? 'on' : 'off';
qLN北方站长站

绝不使用隐含的全局变量 qLN北方站长站

变量zv不是作为一个var或函数参数来声明的,所以它是一个隐式的全局变量。如果这个页面的另一个函数使用了同样名字的全局变量,则可能得到一个失败的结果。这样的臭虫(bug)是非常难以发现,却很容易避免。这个例子中,我们既可以声明zv为一个var,也可以发现它仅仅被使用过一次而整个去掉它。  qLN北方站长站

 function gw(f) {qLN北方站长站
    procframe.location.replace("http://b.www.yahoo.com/module/wtr_tr.php?p=" +qLN北方站长站
        escape(f.p.value) + "&sv=" + d.w.sv.checked ? 'on' : 'off');qLN北方站长站
    return false;qLN北方站长站
}
qLN北方站长站

绝不使用?:运算符选择两种行为之一 qLN北方站长站

我们常质疑那些返回一个常量的函数,但这有时是在浏览器环境下所必需的。 Webjx.Com qLN北方站长站

下面我们看一个不正确使用?:运算符的例子。它常被用于在两个任务间选择。 qLN北方站长站

 function u(o, z) {qLN北方站长站
    var em = o.id.substring(1);qLN北方站长站
    var p = d.getElementById('e' + em);qLN北方站长站
    if (p) {qLN北方站长站
        (z == 0) ? p.style.backgroundColor = '#fff' :qLN北方站长站
                   p.style.backgroundColor = '#989898';qLN北方站长站
    }qLN北方站长站
    p = d.getElementById('e' + (em - 1));qLN北方站长站
    if (p) {qLN北方站长站
        (z == 0) ? p.style.backgroundColor = '#fff' :qLN北方站长站
                   p.style.backgroundColor = '#989898';qLN北方站长站
    }qLN北方站长站
}
qLN北方站长站

对Z的判断是模糊不清的。Z正好等于0时我们选择#fff颜色,那么,Z不等于时?如上所述似乎指明的是前者,但它实际上是后者。在这个例子中幸运的是,我们大概想要的就是后者,所以它不是技术上错误(这次)。但是在文体上只糟糕的。 qLN北方站长站

 qLN北方站长站

我们可以用if代替?:,但碰巧的是这些值对应的是同一个左值(lvalue),所以我们无需if就可以改正这个错误。 qLN北方站长站

 

 function u(o, z) {qLN北方站长站
    var em = o.id.substring(1),qLN北方站长站
        p = d.getElementById('e' + em);qLN北方站长站
    if (p) {qLN北方站长站
        p.style.backgroundColor = z ? '#fff' : '#989898';qLN北方站长站
    }qLN北方站长站
    p = d.getElementById('e' + (em - 1));qLN北方站长站
    if (p) {qLN北方站长站
        p.style.backgroundColor = z ? '#fff' : '#989898';qLN北方站长站
    }qLN北方站长站
}
qLN北方站长站

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

上一页 1 2 3 4 5 6 下一页

下一篇链接:Javascript实例教程(20) OLE Automation(2)

上一篇链接:Javascript实例教程(20) OLE Automation(3)

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面