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);}};}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0、底层 Event Loop事件循环:就是一个执行消息队列的机制 宏任务 微任务为了解决这种情况,将任务分为了同...
    月光一族阅读 2,907评论 7 42
  • 1. 什么是函数节流(throttle) 概念: 限制一个函数在一定时间内只能执行一次 举个栗子: 做火车或地铁时...
    9adaf1f4d739阅读 160评论 0 0
  • 一、html和css部分1、如何理解CSS的盒子模型?标准盒子模型:宽度=内容的宽度(content)+ bord...
    这是这时阅读 407评论 0 5
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,093评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,907评论 0 2