前端---最近面试的一些题目汇总

160 阅读6分钟

  1. diff算法的原理:DOM树的比较
  2. 虚拟DOM节点比较:分标签比较和key比较,如果标签名相同,就直接删除该虚拟DOM,不继续深度比较。而如果标签相同,key相同,就认为是相同节点,不继续深度比较。
  3. 计算属性和侦听器的区别?怎么用?计算属性是用来计算复杂的逻辑的,调用不加小括号,vuex常使用,侦听器用来监听data中的数据变化的,不能调用。
  4. 如何在一行中计算多个表达式的值?用括号括起来,表达式中间用逗号分隔
  5. 箭头函数?一种简写,箭头函数不会创建自己的this,他的this指向是父function中的this,父没有function就是window
  6. dom?文档对象模型
  7. event loop? 事件循环,在异步执行中,把异步代码丢到执行栈中,然后同步的执行完了,就把异步的代码再拿出来执行
  8. ==和===de 区别? 等于和全等,全等还判断了类型
  9. 项目做了什么优化? 图片压缩,路由懒加载,图片懒加载,引入外部CDN,用户交互上增加动画、loading、进度条等
  10. 路由懒加载的原理:ES6+webpack文件分割

  1. 你觉的小程序还是APP难?app难,微信小程序的只发布在微信上,限制比较小,而app开发没有统一的标准,而且app上线更麻烦一些
  2. 发布流程?hbuildx发布功能,打包,需要上传到哪个平台就上传到哪个平台
  3. 路由?路由是在pages.json中定义的
  4. 跳转方式?navigateTo(保留当前页,跳转非tabbar),, redirectTo(不保留当前页,跳转至非tabbar), switchTab(跳转至tabbar页面)等
  5. 请求方式?get/post/put/delete
  6. 兼容问题?使用条件编译,判断在哪个平台用哪个样式
  7. 怎么分包?app.json中加subpackages键

  1. vue响应式原理?objectdefineproperty对data中的数据进行劫持,然后通过发布订阅的方式通知视图更新
  2. 水平垂直居中?display:flex, 利用position定位,top,left一半,margin-left:-自身一般, calc函数
  3. ES6用过什么?箭头函数,对象简写,let,const,解构赋值, 展开运算符,module模块化
  4. 跨域?http-proxy-middleware,配置文件里写, jsonp配合后端,谷歌命令,谷歌插件
  5. this指向问题? 普通方法是window,箭头函数是父函数的this,事件函数里是事件源,自定义bind/call/apply
  6. 伪元素?:before/:after/placeholder等
  7. 前后台交互用的什么?
  8. 生命周期?created/mounted/updated/destroyed actived等
  9. 判断数据类型?typeof /constructor
  10. 懒加载?路由懒加载、组件懒加载,,,es6动态导入
  11. node的理解?module.exports导出,require导入,express框架,mvc思想
  12. MVVM ?m是模型,v是视图,vm是他们之间的桥梁,通过vm,m或v改变都会通知对方做出相应改变
  13. 单向数据流?数据只能由父组件传递给子组件,子组件不能直接修改父的数据

  1. vue底层怎么劫持对象或数组数据的?object.defineProperty
  2. 怎么监控复杂类型?对象递归、数组重写数组的方法
  3. v3compositions思想了不了解?setup将方法和数据都整合到了一起,用的很方便
  4. 手机为什么点击有延迟?ios创始人,防止用户双击放大和缩小
  5. uniapp会用吗?会的,第三个项目就是用uniapp写的
  6. 怎么自适应窗口? flexible.js+px2rem插件
  7. echarts?定义一个有宽高的盒子,
  8. echarts在窗口缩小的时候怎么自适应?resize
  9. proxy比defineproperty好在那里?defineproperty劫持对象的属性,并在原对象上修改,proxy劫持对象后,new出一个新对象,且proxy语法除了get和set还有很多其他的拦截方式
  10. promise原理?底层new了一个promise对象,原型上有then,catch,finally原型方法,和resolve,reject,all,race等静态方法
  11. async和await优点? async和await是generator的语法糖,async修饰函数,await修饰promise对象,然后await后面的代码会先执行一遍,将await下一行后的代码丢到异步中,,,可以将异步变成同步
  12. uniapp和vue有哪些地方不同? 生命周期不同,所用到的技术栈也不同,组件库不同,uniapp兼容各平台
  13. 路由模式有哪些?history和hash,还有abstract
  14. history问题怎么解决?刷新丢失404,解决:服务器上配置允许地址来访问

  1. 数组去重?[...new set [ ] ] ,forEach遍历后indexof / includes判断,filter配合indexof遍历后return
  2. h5和cookie区别?存储性能上,cookie会携带请求头,存储空间上,h5存储:5M,cookie:4kb,生命周期:localstorage是永久,sessionStorage是网页关闭销毁,cookie是浏览器关闭销毁
  3. 路由传参方式?query传参/params传参
  4. 项目做了哪些优化?webpack文件分割,路由懒加载,动态懒加载,图片压缩,引入外部CDN。promise有哪几个状态?进行中,成功了,失败了,resolve和reject互相排斥,,try catch捕获异常
  5. axios有没有封装过? 有的,axios.create创建request对象
  6. 封装过哪些公共组件? table,page分页,表单form,
  7. 导航守卫有哪些? 全局的:beforeeach/aftereach 组件的:beforerouteenter/beforerouteupdate/beforerouteleave
  8. 过滤路由的守卫是哪个?beforeEachVue
  9. 组件通信?props/​eventbus/slot插槽/vuex
  10. computed和watch的区别?computed主要计算复杂一些的逻辑代码,调用不加小括号,watch监控模型数据变化,不能调用,
  11. deep///immediate watch过多会有什么缺点?我觉得应该会影响性能吧,监控太多$nextTick原理? 把nexttick的回调函数放到原生的promise.then,settimeout
  12. Vue常用指令?v-show,v-if,v-model,v-bind,v-for等
  13. v-for和v-if优先级? vue2x中v-for优先级更高,,,vue3中v-if
  14. 有没有开发过自定义指令?deractive,具体的没有在项目中使用过,
  15. 了解过cdn吗?我理解的是在各地分布的服务器,可以加快静态资源的访问
  16. let和var的区别?作用域不同,let必须先定义再使用,
  17. const可以修改引用类型吗?对象的数据可以修改
  18. 了解es6的map吗?这个没了解过
  19. webpack:配置sass/less,配置移除console.log(), babel/文件压缩/前端代理

。。。持续更新吧,,, 一年经验学的也不是很透彻,初级前端工作太难找啦