笔记——javascript修炼之道

js进阶篇
1、动态选择方法与属性:方括号操作符的使用
动态选择属性:
obj[property]
动态调用方法:
obj[methodName](arguments)
根据条件调用方法:
obj[condition?method1Name:method2Name]()
拼接方法名称:
obj[(enable?method1:method2)+'Name']()
2、通过模块模式实现代码访问控制
:为通过var声明的变量和函数创建一个私有作用域
匿名函数定义公有方法使调试困难


在匿名函数中使用var关键字
(function(){
var privateField=1;
function innerFn(){
  noPrivateField=2;//作用域泄露到最外层
}
})();
私有属性和公有属性
(function(){
var publicField = 2;
var privateField = 3;
return {
publicField:public
}
})
3、使用可选/可变/命名参数
arguments很像数组,但不是数组


动态获得不定数量的参数(变长参数列表)
function repeat(times){
for(var index=1,len=arguments.len >h;indexlen;++index){
alert(arguments[index]);
}
}


可选参数设置为默认值undefined
function repeat(times,rant){
//rant设置为undefined
}
repeat(3);
4、
rant = rant || 'defau< value';


undefined === null//false
undefined == null//true


用in操作符判断options对象
是否包含一个属性而不是用!obj[property]


arguments的callee属性会返回正在执行的Function
对象
5、不动全局对象的情况下修改默认属性
function repeat(){
//repeat.defau< Options
}
repeat.defau< Options = {};//公有属性


6、
DOM节点选择要指定上下文
7、
常用的库都有一些快捷操作,动态修饰内容
比如hide(),show(),animate()等等
而不用css()等方法设置属性。


8、Google Analytics:网站数据统计工具
9、UI部分依赖于javascript,应该把非js相关的ui
设置为默认可见。而把js相关的ui设置为隐藏。
等DOM加载的事件发生以后, 把js相关的内容添加到文档中,再显示ui。
10、
监听某个元素
$(element).bind('event',handleFun);
监听多个元素
$(elements).bind('event',handleFun);
停止监听:unbind
11、优先使用事件委托:jq1.4 live方法
如果有大量元素,这些元素共享同一行为:
离这些元素最近的公共祖先上或在document是监听事件。
好处:新加载的元素自动获得监听
12、submit、focus、blur不会冒泡,共享表单及域的处理困难。


13、将行为和自定义事件解耦
自定义事件:
bind
触发自定义事件
trigger('event',传入参数);
14、
模拟后台处理:
setTimeout
15、
var CHUNK_INTERVAL = 25;
var running = false,progress = 0,processTimer;
funtion runChunk(){
window.clearTimeout(processTimer);
processTimer = null;
//模拟任务的各个步骤
for(var i=0;i10000;i+=(Math.random()*5).round()){
;
}
++process;
updateUI();
if(process100){
processTimer = window.setTimeout(runChunk,CHUNK_INTERVAL);
}else{
process=0,running=false;
}
}
function toggleProcessing(){
running = !running;
if(running){
processTimer = window.setTimeout(runChunk,CHUNK_INTERVAL);
}
}
最新回复(0)
/jishuraKE_2BsHX7wxpfWSAmCbXVaHjBqC2sFq4JWM1ng_3D_3D4795391
8 简首页