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

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

  1. 对 MVVM 的理解

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

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

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

  3. 对 webpack 的了解

    前端打包工具…

  4. 对前端工程化的理解

  5. 对模块化,组件化的理解

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

  7. 对 npm 的了解

    第三方库的管理工具

  8. ES6 提出了哪些新概念

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

  9. HTTP 常见的状态码

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

  10. 数组的常用方法,及使用

  11. let ,var ,const 之间的区别

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

  12. 跨域问题 如何解决

    jsonp

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

  14. 对于 数据安全 的措施

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

  15. Vue 全家桶——vue,vue-router,vuex

  16. vuex 的五个核心属性

    state,getter,mutations,actions,modules

  17. v-show 和 v-if 的区别

  18. 父子组件的传值

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

  19. 路由跳转的方式

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

  20. Vue 实例的生命周期

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

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

  22. 对 ui 框架的使用

    element-ui,iview,ionic

  23. angular 和 vue 的对比

  24. 原生 Ajax 如何发送请求

  25. 闭包的概念

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

  26. Vue 中发送请求的方式

    vue-router

  27. axios 怎样发送请求

  28. 前端缓存

    cookie, WebStorage

  29. CSS 常用的布局

  30. 你用过的 CSS 框架

    less

  31. 对单向数据流的理解

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

  33. 回调函数

  34. Promise 三种状态

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

  35. 同步和异步的概念

  36. Get 请求和 Post 请求的区别

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

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

  39. VUE如果注册全局组件

  40. 列举css 选择器及优先级

  41. 权重计算规则

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

  43. 简述 cookies sessionStorage 和 localStorage 区别

  44. 数组去重

  45. mvvm,mvc 原理及区别

以下是笔试题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐