JavaScript第12天

1、递归:在函数中再一次调用函数自己

        1、何时使用:专门遍历层级不明确的情况—DOM和数据children只能找到下一层找不到下下层

        2、如何使用:2步

                function 函数名(root){

                1、第一层要做什么就直接做

                2、判断有没有下一层,如果有下一层则再次调用此方法,只不过传入的实参是自己的下一层

                }

                函数名(实际的根)

        3、算法:深度优先,优先遍历当前节点的子节点,子节点遍历完才跳到兄弟节点

                缺陷:不要过多使用,性能差,同时开启大量的函数调用,浪费内存

        问题:递归vs纯循环

                递归:

                        优点:简单易用

                        缺点:性能低

                纯循环:

                        优点:几乎一点都不占内存

                        缺点:不易懂

2、绑定事件:3种方式

        1、在HTML上书写事件属性

                <elem on事件名="函数名(实参)"></elem>

                缺点:

                        1、不符合内容与样式与行为的分离原则

                        2、无法动态绑定,一次只能帮顶一个元素

                        3、不支持绑定函数对象

        2、在js中使用事件处理函数属性

                elem.on事件名=function(){操作}

                优点:

                        1、符合内容与样式与行为的分离规则

                        2、动态绑定,一次能绑定多个元素

                缺点:不支持绑定多个函数对象

        3、在js中使用事件API

                主流:elem.addEventListener("事件名",callback);

                老IE:elem.attachEvent("on事件名",callback);

                兼容:

                        if(elem.addEventListener){

                                elem.addEventListener("事件名",callback);

                        }eles{

                                elem.attachEvent("on事件名",callback);

                        }

                        优点:

                                1、符合内容与样式与行为的分离规则

                                2、动态绑定

                                3、支持绑定对各函数对象

                        缺点:有兼容性问题

扩展:select & option

        只有他们可以简化创建元素和上树

        select.add(new option("innerHTML"."value"));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值