网络编程
位置:首页>> 网络编程>> JavaScript>> [译]Javascript风格要素(一)(2)

[译]Javascript风格要素(一)(2)

作者:秦歌 来源:随网之舞 发布时间:2008-02-28 12:58:00 

标签:JavaScript,优化,风格,编程

结构化语句要始终使用区块

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

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

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

if ((e = c.indexOf(';', s)) == -1)
    e = c.length;

写成

if ((e = c.indexOf(';', s)) == -1) {
    e = c.length;
}

区块的用处是避免了下面的情况:

if ((e = c.indexOf(';', s)) == -1)
    e = c.length;
    s += n.length + 2;

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com