6-10

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)