<>面试 vue前端工程师的常见面试题及笔试题。

面试了近十几家公司总结出一套VUE面试题,希望能帮助到更多的人。

*
对 MVVM 的理解

MVVM分为Model、View、ViewModel三者。
Model:代表数据模型
View:代表视图
ViewModel:连接视图和模型,实现数据的双向绑定

*
Vue 实现数据双向绑定的原理

采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。当把一个普通的
JavaScript 对象传给 Vue 作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转化为
getter/setter,用户看不到getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。
1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者
2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数
3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图

*
对 webpack 的了解

前端打包工具…

*
对前端工程化的理解

*
对模块化,组件化的理解

*
使用 vue-lic 搭建一个 Vue 的项目

*
对 npm 的了解

第三方库的管理工具

*
ES6 提出了哪些新概念

1.var let
2.箭头函数
3.模板字符串(反引号)
4.解构赋值
5.import,export
6.class


*
HTTP 常见的状态码

400 客户端请求有语法错误,不能被服务器所理解
403 服务器收到请求但是拒绝提供服务|
200 客户端请求成功|
404 请求资源不存在 eg:输入错误的URL |
500 服务器发生不可预期的错误 |
503 服务器当前不能处理客户端请求,一段时间后可能恢复正常

*
数组的常用方法,及使用

*
let ,var ,const 之间的区别

var声明变量可以重复声明,而let不可以重复声明
var是不受限于块级的,而let是受限于块级
var会与window相映射(会挂一个属性),而let不与window相映射
var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
const声明之后必须赋值,否则会报错
const定义不可变的量,改变了就会报错
const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错

*
跨域问题 如何解决

jsonp

*
如何解决浏览器的兼容问题

*
对于 数据安全 的措施

md5,对称加密,非对称加密

*
Vue 全家桶——vue,vue-router,vuex

*
vuex 的五个核心属性

state,getter,mutations,actions,modules

*
v-show 和 v-if 的区别

*
父子组件的传值

父组件传值给子组件:
第一步:在父组件中 v-bind:parentmsg=“父组件的data值”(parentmsg 这个名字可自定义)
第二步:在子组件中 props:[‘parentmsg’]
{{parentmsg}}这样就可以使用 父组件的值
父组件把方法传递给子组件:
第一步:在父类组件中 @func=父组件方法名 (方法名不带‘()’,func可自定义)
第二步:在子组件方法中写 this.$emit(‘func’,方法参数) (func可自定义,无参方法‘方法参数’就别写)

*
路由跳转的方式

1.<router-link to='home'> router-link
2. router.push('/home')

*
Vue 实例的生命周期

*
vue-router 中 hash 模式和 history 模式的区别

最直观的区别是在 url 中 hash 带了一个 # 而 history 是没有的;
history 需要后端提供支持;
history 跳转后刷新或者回跳会报错

*
对 ui 框架的使用

element-ui,iview,ionic

*
angular 和 vue 的对比

*
原生 Ajax 如何发送请求

*
闭包的概念

函数嵌套函数,内部函数引用外部函数变量,外部函数调用之后,其对象本该被销毁,但闭包的存在,使我们仍然可访问外部函数的变量对象,导致垃圾回收机制没有生效,变量被保存下来,内存泄漏。

*
Vue 中发送请求的方式

vue-router

*
axios 怎样发送请求

*
前端缓存

cookie, WebStorage

*
CSS 常用的布局

*
你用过的 CSS 框架

less

*
对单向数据流的理解

*
计算属性(computed)和 watch 的区别

*
回调函数

*
Promise 三种状态

pending、fulfilled、rejected(未决定,履行,拒绝),同一时间只能存在一种状态,且状态一旦改变就不能再变。promise是一个构造函数,promise对象代表一项有两种可能结果(成功或失败)的任务,它还持有多个回调,出现不同结果时分别发出相应回调。
1.初始化,状态:pending
2.当调用resolve(成功),状态:pengding=>fulfilled
3.当调用reject(失败),状态:pending=>rejected

*
同步和异步的概念

*
Get 请求和 Post 请求的区别

* Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
2 Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。
3.Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
4. Get执行效率却比Post方法好。Get是form提交的默认方法。
*
自定义过滤器

*
如何用原生js给一个按钮绑定多个 onclick 事件

*
VUE如果注册全局组件

*
列举css 选择器及优先级

*
权重计算规则

*
阐述清除浮动的几种方式及优缺点

*
简述 cookies sessionStorage 和 localStorage 区别

*
数组去重

*
mvvm,mvc 原理及区别

以下是笔试题

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信