javascript中for循环非常常用,一般写法如下:

1
2
3
4
for(var i = 0;i< arr.length;i++) {
        var a = arr[i];
        //...
    }

这就是一个常见的,正序循环的for循环。这样写的缺点大家都明白:每次都从arr里取length与i来对比,浪费性能(而且,要是arr的长度是动态变化的,就会出现死循环)。改进这个循环的办法是用变量保存arr.length:

1
2
3
4
for(var i = 0, al = arr.length;i< al;i++) {
        var a = arr[i];
        //...
    }

这样比第一种可以略微提升点性能,要是数组长,可以提升更多。继续阅读

本文属于《Javascript基础纪要》系列

带格式是指,像普通的HTML文档一样,有缩进,有换行,有空格,这种字符串更便于阅读。大家拼innerHTML的时候,巴不得越容易阅读越好。

JS拼字符串,一般喜欢用+。如果想要很多行拼在一起,且方便阅读,一般的做法是:

1
2
3
4
5
6
7
8
9
10
11
12
var
s = '<div class="main">'
    + '<div class="left">'
    +'</div>'
    +'<div class="right">${a},{{a}}'
    +   '<ul>'
    +       '<!-- for: ${people} as ${p} -->'
    +       '<li>${p.name}</li>'
    +       '<!-- /for -->'
    +   '</ul>'
    +'</div>'
+'</div>';

这种已经算比较好了,但还是不够好。比如有太多的+号,有太多的”,这里的结构还算少的,要是再多的话,+和’也会更多。下面是更简洁的方式,也是我一直在用的:继续阅读

wordpress自带的评论系统,之前由于样式不好看,不方便嵌套,不能@引用(也许改了代码可以实现这些功能,但会改代码的人本来就少)等缺点,有些人就用了第3方的评论管理系统,我也用过,比如多说以及现在用的畅言。

第3方评论管理系统,样式较为美观,且可以用社交账号登陆,不用老是匿名。但缺点也是明显的,平常不出问题,一出问题就大发了。比如之前我用多说的时候,出现过多说服务器当机而让这边的页面也没法评论的问题。

后来我觉得多说比较卡,于是我就换成了畅言。畅言需要注册账号,注册后下载wordpress的畅言插件,然后在后台登陆。登陆后就可以用畅言管理wordpress的评论了。但蛋疼的是,我一段时候后来打开后台,发现畅言的登陆已经失效了,而我还把畅言的账号都给忘了,没办法我重新注册了一个账号,但之前那个账号上的畅言评论就不见了,再也没有显示在页面上了。继续阅读

本文属于《Javascript基础纪要》系列,虽有凑数之嫌,但还是提一下吧。

JS声明变量的办法我就不说了,我们经常需要连续声明好几个变量,当我是新手时,我是这么做的。

1
2
3
4
var a=1;
var b={};
var c=[];
var d=...

实际上我们可以这样:

1
var a=1,b=2,c=3,d=4;

也就是用,分隔多个变量。

这样不换行的情况,只适合变量值比较单一的情况,如果你的变量是函数或对象,则要换行了:

1
2
3
4
5
6
7
var a=function (){
    var b,c,d;
},
b = {
    b:1,
    a:2
};

这样可以一直写下去,且能保持良好的可读性。当然,最后记得要用;收尾

另外这里我要提一句,最近我用了好几个JS压缩工具,都很智能了,但还是不会智能到把多行里的多个var自动合并成一个var的地步,所以,如果你要压缩你的JS,最好是用这种连续声明方式。jQuery等都是用这种。

本文结束

这里说的源代码,是指未加密,且没做过让人看不懂的混淆的代码。

如果你在官网上下载了整套easyui,会得到个压缩包,里面有个src目录,这就是他开放了源代码的部分组件。里面没有tree

当然,也没有datagrid,treegrid等更复杂的组件。

不过,在plugins目录下,就有这几个。但打开后会发现,里面的代码的变量全是这样的,_1,_2,_3a,_4e….

而且easyui的整个JS,是 jquery.easyui.min.js,没有类似jquery的不带min的文件,也就是说他对上面这些个核心控件,是报着并不怎么愿意开放源码的心态的。继续阅读

最近在工作项目中,用到了日期格式化,要求传到后台的日期格式必须是2012-02-02这样的。蛋疼的是Javascript都没有自己原生的日期格式化函数,只能自己写一个。

写的时候我就想写一个通用的,比如这次要的是2012-02-02,下次说不定就要2012/02/02或2012-2-2,总不能下次又写吧。

在发源代码之前,我要列举一下约定俗成的日期格式(也就是Windows系统日期与时间的格式),如下:继续阅读

自从东哥泡了奶茶,京东有了很多变化:把39起包邮提高成了59才包邮;商品价格也逐渐成了在线商城中最高的。所以我就再也没去京东了,去其他一些在线商城逛了。

自从在国美在线买了一个冰箱——其实,我是到国美电器实体店里去看了,再在网上下的单——我就发现国美也许是迫切想发展电商的原因,他上面的优惠往往比京东实在,但是,他有个很大很大的BUG——搜索框没法用

表现为你点不进搜索框,然后就没法输入,就没法搜索了。出现的页面我没研究过,有时候首页都是这样。在你想搜索的时候,有50%会发现点不进搜索框!

我用的是chrome。这已经不是bug了,这恐怕会严重影响国美的生意吧。

奇怪的是国美一直没发现,一直没改进,呵呵