第三周day004

83 阅读2分钟

day004

1、递归:简单来说就是再函数之中再一次调用了函数自己

何时使用:专门用于【遍历层级不明确的情况】 - DOM树和【数据】

如何使用:2function 函数名(root){
1、第一层要做什么直接做!

2、判断有没有下一层,如果有下一层则再次调用此方法,只不过传入的实参是自己的下一层
		}
函数名(实际的根元素/根数据)

算法:深度优先!优先遍历当前节点的子节点,子节点遍历完毕才会跳到兄弟节点
缺陷:不要过多使用,性能相对较差,同时开启大量的函数调用,浪费内存,我们只在一个情况:【遍历层级不明确的情况】

递归 vs 纯循环:
递归:
        优点:简单易用
        缺点:性能低
纯循环:
        优点:几乎不占用内存
	缺点:难得很
绑定事件
1、在HTML页面上书写事件属性:
<elem on事件名="函数名(实参)"></elem>
	缺点:
		1、不符合内容(HTML)与样式(CSS)与行为(JS)的分离
		2、无法动态绑定,一次只能绑定一个元素
		3、不支持绑定多个函数对象
2、*在JS中使用事件处理函数属性:
elem.on事件名=function(){操作}

	优点:
		1、符合内容(HTML)与样式(CSS)与行为(JS)的分离
		2、可以动态绑定

	缺点:
		1、不支持绑定多个函数对象 
3、*在js中使用事件API:如果不用考虑老IE,他还是不错的
主流:elem.addEventListener("事件名",callback);
老IE:elem.attachEvent("on事件名",callback);
兼容:
	if(elem.addEventListener){
		elem.addEventListener("事件名",callback);
		}else{
		elem.attachEvent("on事件名",callback);
		}
优点:
	1、符合内容(HTML)与样式(CSS)与行为(JS)的分离
	2、动态绑定
	3、支持绑定多个函数对象
缺点:有兼容性问题
扩展:
	1select&option只要他们可以简化创建元素&上树!
	一句话简化4个操作:
	select.add(new Option("innerHTML","value"))