JavaScript 越来越火,其框架也越来越多。老去的如YUI,风头正劲的如JQuery。讨论了一下,前端小组决定写一个适合自己当前工作的,暂且称为类库的 JavaScript 文件。
四天前确定了一下研究方向,今天开始第一次讨论,讨论的细节如下:
类库的名字:
无论是框架还是类库,这总是自己的孩,总得有个名字。于是会议的第一项就是给自己的孩子起个名字。从三四个后选名字中选出一个,既简短,又方便使用键盘的孩子敲写(这是嘛逻辑?-_-!!!),暂定QUI。
规范:
没有规矩不成方圆,大家要合作就得统一一下编码规则,大家都遵照一个规则写的代码才方便别人阅读也便于别人维护。参照JavaScript程序编码规范,经讨论,总结出如下规范:
- 缩进:Tab,四个空格
- 注释:使用单行注释 在文档头部标注update日志 svn提交时加入描述信息
-
变量及函数声明:
- 避开全局变量(全局变量是魔鬼),使用var声明
- 变量名称:使用驼峰结构——首单词小写,其余单词首字母大写其余字母小写。私有成员变量名由下划线开头
- 函数名称:作为类名时,首字母大写;作为方法时,与变量命名相同(驼峰结构)
-
函数声明时,函数名后左大括号单放一排,例如:
个人不太赞成这种提案,因为借Aptana之类的编辑工具format后会将左大括号自动与函数名放在一排//不采用
function funName(param){
}
//采用
function funName(param)
{
} -
if及其他结构语句中,语句体只有一行内容时也不能省略大括号,例:
不采用:for(var i = 0; i < 3; i++)
m+=2;
采用:for(var i = 0; i < 3; i++)
{
m+=2;
} -
函数定义时及调用时,各个参数在名称前均有一个前导空格例:
不采用:function funName(param1,param2,param3)
采用:function funName( param1, param2, param3)
-
细节注意:
- 每条语句结束后,其末尾要加分号”;”,避免由JavaScript自动加分号的原则导致错误
-
尽量不要使用with结构,with本意是想让用户减少键盘输入,比如
obj.a = obj.b;
obj.c = obj.d;
可以写为
(with obj){
a = b;
c = d;
}但在实际运行时解释器会先判断obj.b和obj.d是否存在,如果不存在的话会判断全局变量b和d是否存在,效率低下,而且容易导致意外发生。
- === 与 == 的用法要记牢
- 确定以后使用[]代替new Array(),但是是否使用{}代替new Object()待定
实施:
-
Ajax:
- get/post 实现,加入AjaxPoll的概念,增加可用性
- JsonP 跨域访问内容等,注意:返回的数据不再是单一的json
- Ajax请求IE缓存的问题
-
DOM操作:
- 增加:创建元素,可根据参数来创建DOM元素(参数应该包含元素tagName,attr,附加节点——添加在哪 等)
- 删除:删除DOM元素的时候要注意防止内存泄露的事情发生,把该对象的属性清理干净
- 修改:包括修改元素样式,改变innerHtml 为事件增加bind方法和unbind方法是必须的
- 查找:根据id、name、tagName最好也包括className等来查找DOM对象
-
方法扩展:
- String对象:trim方法,string2json 等方法
- Array对象:inArray方法等,大家经常用到但是js本身没有提供或提供的并不能满足大家需求的函数
- Date对象:日期的加减等方法

小小子的JS很强啊,我看你好多JS的文章~
沙发了!!
@Jutoy
学习中,想向前端方向发展。呵。
赶紧赶紧 发展大了来帮我 哈哈 哈哈
@Showfom
我晕。看你回的邮件了,你的php程序我看写的不错啊,咋还这么谦虚呢。呵呵。。
JS真是一门高深的学问啊.
@diyidu
网页设计也是啊。生活也是如此,各种事情都有大学问在里面,歌里不也说嘛,“一不小心就让生活弄这一头大包”,呵呵。
怎么能说YUI老去呢?只不过是门槛比较高而已,雅虎系网站用它用得火热呢
学习了,还去看了《JavaScript语言精粹》的介绍,等手头的C/S项目完了,就去学
@alswl
呵,那本书很棒的。呵呵。