一、良好的编程习惯
1.避免JS冲突
1>使用匿名函数将脚本包起来,减少全局变量,避免冲突。
2>团队项目有必要添加必要注释:
包括功能、编写人员名称、编写人员联系方式、编写时间。
3>使用命名空间,用作不同功能之间的通信——使用一个{}对象类型的变量作为全局变量
<script type="text/JavaScript">
var GLOBAL = {};
GLOABL.namespace = function(str){
var arr = atr.split("."),o = GLOBAL;
for ( i = (arr[0] == "ALOBAL")) ? 1 : 0 ; i < arr.length; i++) {
o[arr[i]] = 0[arr[i]] || {};
o = o[arr[i]];
</script>
<script>
(function(){
GLOBAL.namespace("A.CAT");
GLOBAL.A.CAT.name = "xiaohua";
GLOBAL.A.CAT.move = function(){
}
})();<pre name="code" class="html"></script>
4>CSS放在页头,Javascript放在页尾,这样脚本的加载不会阻塞页面HTML的加载。
二、分层和库
1.分层:base、common、page三层
1>base层为common何page提供接口,包括不同浏览器下Javascript的差异等。
大致分为三块:1.操作DOM2.操作事件3.提供原生Javascript不提供的函数。
例如:透密度,IE通过滤镜实现、普通浏览器如火狐通过opacity实现:
<script type="text/javaScript">
var test = document.getElementById("id01");
if (document.all) {
test.style.filter = 'alpha(opacity = 20)';
else {
test.style.opacity = 0.2;
}
</script>
2>common层提供更庞大的组件,可以按功能分成一个个单独的文件
3>page层属于应用级
三、实用技巧
1.命名技巧
<div class="tab">
<ul>
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
</ul>
</div>
为以上代码中li设置挂钩,为了表示id更像tab组件私有的命名:
<div class="tab">
<ul>
<li id="tab-menu1">menu1</li>
<li id="tab-menu2">menu2</li>
<li id="tab-menu3">menu3</li>
</ul>
</div>