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

Javascript教程:展示风格的价值

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

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

  

qLN北方站长站

结构化语句要始终使用区块 qLN北方站长站

下面这个例子是一个cookie类构造器。它创建了一个有get和set方法的对象。 qLN北方站长站

 

function yg_cookie() {qLN北方站长站
    this.get = function (n) {qLN北方站长站
        var s,qLN北方站长站
            e,qLN北方站长站
            v = '',qLN北方站长站
            c = ' ' + document.cookie + ';';qLN北方站长站
        if ((s = c.indexOf((' ' + n + '='))) >= 0) {qLN北方站长站
            if ((e = c.indexOf(';',s)) == -1)qLN北方站长站
                e = c.length;qLN北方站长站
            s += n.length + 2;qLN北方站长站
            v = unescape(c.substring(s, e));qLN北方站长站
        }qLN北方站长站
        return (v); qLN北方站长站
    }qLN北方站长站
    this.set = function (n,v,e) {qLN北方站长站
        document.cookie = n + "=" + escape(v) +qLN北方站长站
            ";expires=" + (new Date(e * 1000)).toGMTString() +qLN北方站长站
            ";path=/" + ";domain=www.yahoo.com";qLN北方站长站
    }qLN北方站长站
}qLN北方站长站
var _yc = new yg_cookie();
qLN北方站长站

qLN北方站长站

Javascript的if语句和C语言的相似:它能执行一个语句或一个区块。关于用语句的问题是一个普通的错误非常难以探测。最好把 qLN北方站长站

 if ((e = c.indexOf(';', s)) == -1)qLN北方站长站
    e = c.length;
qLN北方站长站

写成 qLN北方站长站

 if ((e = c.indexOf(';', s)) == -1) {qLN北方站长站
    e = c.length;qLN北方站长站
}
 qLN北方站长站

区块的用处是避免了下面的情况: qLN北方站长站

 if ((e = c.indexOf(';', s)) == -1)qLN北方站长站
    e = c.length;qLN北方站长站
    s += n.length + 2;
qLN北方站长站

它将出现当indexOf返回-1是,s是只被增加,但这不是实际情形。像这样的bug被发现代价是非常高的,但是可以通过一直使用大括号声明结构来廉价的避免。 qLN北方站长站

避免赋值表达式 qLN北方站长站

Javascript从C继承的另一个坏习惯是赋值表达式。它出现在流线型代码中,但它能使控制流更难以理解。如果我们从他们的使用中分离了s和e的计算,get方法会变得更清晰。 iT粉丝网 qLN北方站长站

 this.get = function (n) {qLN北方站长站
    var v = '',qLN北方站长站
        c = ' ' + document.cookie + ';',qLN北方站长站
        s = c.indexOf((' ' + n + '=')),qLN北方站长站
        e = c.indexOf(';', s);qLN北方站长站
    if (s >= 0) {qLN北方站长站
        if (e == -1) {qLN北方站长站
            e = c.length;qLN北方站长站
        }qLN北方站长站
        s += n.length + 2;qLN北方站长站
        v = unescape(c.substring(s, e));qLN北方站长站
    }qLN北方站长站
    return (v);qLN北方站长站
}
qLN北方站长站

我们现在能看到当s被计算时,在indexOf参数两边有多余的括号。(在return语句中也有非必须的括号。)但是更重要的是,能容易的看出if (e == -1)的目的是什么:如果cookie中末尾的分号不存在,假定cookie结束在字符串的末端。然而,当我们计算c时,我们在cookie中加入了一个分号,它保证了预料的if条件将绝不会发生。所以我们能移除if。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 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面