8. 减少全局变量
“把你踩在全局的那些乱七八糟的脚印都归于一人名下,能显著降低与其他应用、小工具或JS库冲突的可能性。” – Douglas Crockford
var name = 'Jeffrey'; var lastName = 'Way'; function doSomething() {...} console.log(name); // Jeffrey -- or window.name
更好的写法:
var DudeNameSpace = { name : 'Jeffrey', lastName : 'Way', doSomething : function() {...} } console.log(DudeNameSpace.name); // Jeffrey
注意看,我们是如何戏剧化地把“乱七八糟的脚印”都归到“DudeNameSpace”这对象之下的。
9. 写好注释
可能一开始你会觉得并无必要,但相信我,你将来会主动想要尽可能写好代码的注释的。当你几个月后再回看某项目时,结果却发现很难想起当时写某句东西时脑子在想的什么了,是不是很让人沮丧呢?或者,如果有同事要修订你的代码呢?一定,一定要为你代码里的重要部分加上注释。
// Cycle through array and echo out each name. for(var i = 0, len = array.length; i < len; i++) { console.log(array[i]); }
10. 试试渐进增强
一定要记得为未启用JavaScript的情况提供替代方案。大家可能会认为,“大部分我的访客都启用了JavaScript的,我才不用担心”。这样的话,你可就大错特错了!
你有没有试过看看禁用JavaScript后你那漂亮的滑动器都成啥样了?(你可以下载 Web Developer ToolBar 轻松完成这项任务。)禁用之后你的网站可能就彻底失去了可用性!经验之谈:开发初期总是按照没有JavaScript来设计你的网站,之后再进行渐进地功能增强,小心翼翼地改变你地布局。
11. 不要传递字串给 “setInterval” 或 “setTimeout”
看看下面的代码:
setInterval( "document.getElementById('container').innerHTML += 'My new number: ' + i", 3000 );
不仅执行不高效,而且和 eval 函数有着同样的高风险。千万不要把字串传递给 setInterval 和 setTimeout。恰当的做法是,传递一个函数名:
setInterval(someFunction, 3000);
12. 不要使用with语句
初识之下,“with”语句似乎还挺好用的。它用于设置代码在特定对象中的作用域。其基本用法是提供深入到对象中处理元素的快速写法。例如:
with (being.person.man.bodyparts) { arms = true; legs = true; }
等价于:
being.person.man.bodyparts.arms = true; being.person.man.bodyparts.legs= true;
不幸的是,测试表明,若你要为对象插入新成员,with的表现非常糟糕,它的执行速度非常缓慢。替代方案是声明一个变量:
var o = being.person.man.bodyparts; o.arms = true; o.legs = true;
出处:笨活儿
责任编辑:bluehearts
上一页 给JavaScript新手的24条实用建议 [2] 下一页 给JavaScript新手的24条实用建议 [4]
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|