没有合适的资源?快使用搜索试试~ 我知道了~
黑马前端面经1
需积分: 0 10 下载量 13 浏览量
2022-08-03
13:13:53
上传
评论 2
收藏 1.51MB PDF 举报
温馨提示
试读
27页
2、vue双向数据绑定的原理 3、vue的生命周期有哪些 6、常用的数组方法有哪些 7、数组有哪几种循环方式 8、常用的字符串方法有哪些 9、什么是原型链 2、
资源推荐
资源详情
资源评论
前端常见高频面试题
前端常见高频面试题
1、什么是mvvm 、 mvc 模型?
2、vue双向数据绑定的原理?
3、vue的生命周期有哪些?
4、v-if 和v-show有什么区别?
5、async await 是什么?它有哪些作用?
6、常用的数组方法有哪些?
7、数组有哪几种循环方式?分别有什么作用?
8、常用的字符串方法有哪些?
9、什么是原型链?
10、什么是闭包?手写一个闭包函数? 闭包有哪些优缺点?
11、常见的继承有哪些?
12、后台管理系统中的权限管理是怎么实现的?
14、es6有哪些新特性?
15、v-for 循环为什么一定要绑定key ?
16、组件中的data为什么要定义成一个函数而不是一个对象?
17、常见的盒子垂直居中的方法有哪些请举例3种?
18、平时都是用什么实现跨域的?
19、cookie 、localstorage 、 sessionstrorage 之间有什么区别?
20、this 的指向有哪些?
21、什么是递归,递归有哪些优点或缺点?
22、谈谈你平时都用了哪些方法进行性能优化?
23、vue实例是挂载到那个标签上的?
24、什么是深拷贝、什么是浅拷贝?
25、js的执行机制是怎么样的?
26、请写至少三种数组去重的方法?(原生js)
27、请写出至少两种常见的数组排序的方法(原生js)
28、知道lodash吗?它有哪些常见的API ?
29、http的请求方式有哪些?
30、平时都是用那些工具进行打包的?babel是什么?
31、谈谈set 、 map 是什么?
32、清除浮动的方法有哪些?
33、常见的布局方法有哪些?他们的优缺点是什么?
34、图片懒加载是怎么实现的?
35、vue中computed 和watch 的区别是什么?
36、vue中是怎么实现父向子、子向父、兄弟之间的传值的?
37、什么vuex ,谈谈你对它的理解?
38、数据类型的判断有哪些方法?他们的优缺点及区别是什么?
39、知道symbol 吗?
40、请描述一下ES6中的class类?
41、谈谈盒子模型?
42、promise是什么?它有哪些作用?
44、箭头函数有哪些特征,请简单描述一下它?
45、移动端有哪些常见的问题,都是怎么解决的?
46、post和get 请求有哪些区别?
47、什么是同源策略?
48、http状态码分别代表什么意思?
49、BFC是什么?
50、token是什么?(加密)
51、js的数据类型有哪些?
52、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
53、安全问题 :CSRF 和 XSS攻击?
54、CSRF 和 XSS 的区别
55、cookie和session 的区别
56、call、apply、bind三者的异同
1、什么是mvvm 、 mvc 模型?
MVC: MVC即model-view-controller(模型-视图-控制器)是项目的一种分层架构思想,它把复杂的业
务逻辑,抽离为职能单一的小模块,每个模块看似相互独立,其实又各自有相互依赖关系。它的好处
是:保证了模块的智能单一性,方便程序的开发、维护、耦合度低。
mvvm: MVVM:MVVM即 Model-View-ViewModel,(模型-视图-控制器)它是一种双向数据绑定的模式,
用viewModel来建立起model数据层和view视图层的连接,数据改变会影响视图,视图改变会影响数据
2、vue双向数据绑定的原理?
vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属
性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
具体步骤:
第一步:需要 observe 的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter 和
getter 这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
第二步:compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染页面视图,并将每
个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图
第三步:Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是:
1、在自身实例化时往属性订阅器(dep)里面添加自己
2、自身必须有一个update()方法
3、待属性变动dep.notice()通知时,能调用自身的 update() 方法,并触发Compile中绑定的回
调,则功成身退。
第四步:MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者,通过Observer
来监听自己的model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer和
Compile之间的通信桥梁,达到数据变化 -> 视图更新;视图交互变化(input) -> 数据model变更的双向
绑定效果。
3、vue的生命周期有哪些?
vue 实例从创建到销毁的过程就是生命周期。
也就是从开始创建、初始化数据、编译模板、挂在 dom -> 渲染、更新 -> 渲染、准备销毁、销毁在
等一系列过程
vue的声明周期常见的主要分为4大阶段8大钩子函数
另外三个生命周期函数不常用
keep-alive 主要用于保留组件状态或避免重新渲染。
activated只有在keep-alive 组件激活时调用。
deactivated只有在keep-alive 组件停用时调用。
errorCapured 当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错
误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回
false 以阻止该错误继续向上传
播。
一、创建前 / 后
在beforeCreate生命周期函数执行的时候,data和method 还没有初始化
在created 生命周期函数执行的时候,data和method已经初始化完成
二、渲染前/后
在beforeMount 生命周期函数执行的时候,已经编译好了模版字符串、但还没有真正渲染到页面中去
在mounted 生命周期函数执行的时候,已经渲染完,可以看到页面
三、数据更新前/后
在beforeUpdate生命周期函数执行的时候,已经可以拿到最新的数据,但还没渲染到视图中去。
在updated生命周期函数执行的时候,已经把更新后的数据渲染到视图中去了。
四、销毁前/后
在beforeDestroy 生命周期函数执行的时候,实例进入准备销毁的阶段、此时data 、methods 、指令
等还是可用状态
在destroyed生命周期函数执行的时候,实例已经完成销毁、此时data 、methods 、指令等都不可用
4、v-if 和v-show有什么区别?
v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁
和重建,操作的实际上是dom元素的创建或销毁。
v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换
它操作的是display:none/block属性。
一般来说,
v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地
切换,则使用
v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
5、async await 是什么?它有哪些作用?
async await 是es7里面的新语法、它的作用就是 async 用于申明一个 function 是异步的,而 await 用
于等待一个异步方法执行完成。它可以很好的替代promise 中的then
async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。当函数执行的时候,一旦遇
到
await 就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
6、常用的数组方法有哪些?
剩余26页未读,继续阅读
资源评论
SLHJ-Translator
- 粉丝: 27
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功