6-10

作者: 一只老鳄鱼 | 来源:发表于2021-08-24 01:28 被阅读0次

    6、js的数据类型

    简单数据类型:Number、String、Boolean、 undefined、object、Null

    引用类型:Object Array Function

    7、面向对象的特征:封装、继承、抽象、多态

    8、vue的实现原理

    vue是一个典型的MVVM框架,模型Model是js对象,修改它则视图VIEW自动更新。

    vue实现双向数据绑定,需要三大模块:

    Observer:能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者

    Compile:对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定想要的更新函数

    Watcher:作为链接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图。

    9、vue的生命周期

    beforeCreate:组件实例刚被创建

    created:组件实例创建完成,属性已绑定,但是DOM还未生成

    beforeMount:模板编译

    mounted:挂载

    beforeUpdate:

    updated:更新

    beforeDestroy:实例销毁前

    destroyed:销毁

    10、防抖 :

    (实例:https://www.cnblogs.com/momo798/p/9177767.html)

    在某段时间内,不管你触发了多少次回调,我都只认最后一次。

    a:如果在200ms内没有再次触发滚动事件,那么就执行函数

    b:如果在200ms内再次触发滚动事件,那么当前的计时取消,重新开始计时

    //防抖例子

    functiondebounce(fn,wait){vartimer=null;returnfunction(){varcontext=this,args=arguments;// 如果此时存在定时器的话,则取消之前的定时器重新记时if(timer){clearTimeout(timer);timer=null;}// 设置定时器,使事件间隔指定事件后执行timer=setTimeout(()=>{fn.apply(context,args);},wait);};}

    节流:在某段时间内,不管你触发了多少次回调,我都只认第一次,并在计时结束时给予响应。

    // 函数节流的实现;functionthrottle(fn,delay){varpreTime=Date.now();returnfunction(){varcontext=this,args=arguments,nowTime=Date.now();// 如果两次时间间隔超过了指定时间,则执行函数。if(nowTime-preTime>=delay){preTime=Date.now();returnfn.apply(context,args);}};}

    相关文章

      网友评论

          本文标题:6-10

          本文链接:https://www.haomeiwen.com/subject/cxhekltx.html