1.MVC的理解
MVC是一种网站开发模式,进行业务逻辑的处理。即所有的请求都先到控制层,然后进行不同的处理,再找到不同的业务处理层,处理完之后返回数据,然后生成View视图,之后再返回请求者,它会大量操作DOM。
2.BFC的理解
它是一个布局里的概念,把盒子设置为BFC后,里面无论怎么布局,都不会影响外面的变动,用它可以解决一些布局问题如高度塌陷等。
3.Vuex的理解
vuex是一个状态管理工具,主要解决大中型项目的数据共享问题,其中包括state,actions,mutations,getters,modules五个要素,主要流程是组件通过dispatch到actions,再actions通过commit到mutations,mutations再通过逻辑操作改变state,从而同步到组件,更新其数据状态,getters相当于组件的计算属性,modules则使代码复用性更高,也避免了命名冲突。
4.事件循环机制的理解
它是js的一个底层运行原理,由于js是单线程的,有时会出现一些耗时任务,代码都在主线上,就会影响执行效率,当遇见像ajax请求或者定时器时,会单独开启异步线程,异步线程耗时之后会推入异步队列中等待执行,然后当主线程执行完毕之后,会到异步队列中取出到主线程中执行,接着再取第二个,这个来回取的过程即为事件循环机制。
5.事件代理的理解
即通过给父级元素绑定事件,不给子级元素绑定事件,然后当点击子级元素时,通过事件冒泡机制在其绑定的父元素上触发事件处理函数,其目的即为提升性能,不用多次绑定事件
6.同步和异步的理解
同步即代码由上而下执行,异步则是有些代码可以并行执行,而且不会阻塞后面的代码。
三个解决异步方案:回调函数、promise、async和await
7.Vue的最大特点以及核心是什么?
最大特点感觉是组件化和数据驱动。组件化就是可以将页面和页面中可复用的元素都看成组件,写页面也就是将这些组件拼接起来的组件树,数据驱动就是让我们只关注数据层,只要数据变化,页面就会自动更新,就很方便。
8.单线程和多线程的区别
进程:当一个程序开始执行的时候,即为一个进程。进程包括运行中的线程和程序所使用到的内存和系统变量。一个进程由多个线程组成。
线程:线程是操作系统能够进行运算调度的最小单位。
多线程:指程序中包含多个执行流。
多线程的好处:可以提高CPU的利用率。
9.Vue中data为什么必须是函数?
因为组件能够复用,但他们中的data是私有的,如果在里面直接返回一个对象,组件复用时就会影响其他的组件,而用函数表示,就会是一个新的data对象,在堆内存里面指向的就是不同的空间地址,也就不会受到影响。
10.箭头函数和普通函数的区别
箭头函数不能作为构造函数使用,而普通函数可以,并以此创建对象实例。
箭头函数本身没有this,它的this是父级普通函数的this,在普通函数中,this总是指向调用它的对象,如果用做构造函数,它便指向的是对象实例。