面试中遇到的一些问题

关于vue的

  1. Vue,vue-router,vuex的实现原理
  2. Vue的生命周期
  3. Vue有哪些优势
  4. Vue组件间是如何通讯的
  5. 父组件和子组件created和mounted的顺序
  6. 由于 JavaScript 的限制,Vue 不能检测以下数组的变动,到底是不能实现还是vue不想实现
  7. vuex中mutation和action的作用
  8. 什么是双向绑定,实现一个简单双向绑定的思路
    双向绑定就是视图变了数据会变化,数据变了试图也会变化。实现思路是把数据做成一个代理,监听数据变化了就更新dom;在dom上设置监听事件,监听到变化了就更新数据。

 

关于js的

  1. 对Js模块化的理解
  2. js两种函数定义方法有什么区别
  3. js闭包,闭包的作用和缺点
  4. 原生js获取dom和属性
  5. isNaN和Number.isNaN
  6. .sort() 方法用的是什么算法
    不同浏览器使用的算法也不同,如谷歌在长度比较少时采用插入排序,长度较多时采用快速排序。火狐中采取的是归并排序。
  7. 一句代码实现数组去重   [...new Set(array)]
  8. 如何判断一个变量是否为数组
  9. 对事件循环了解
  10. call,apply,bind的用法和区别
    三个方法第一个参数都是指定函数中的this指向;call,apply是立即执行,bind还要调用一次;函数调用时候的参数,call和bind可以直接传入,apply要以数组的形式传入
  11. callback,promise,generator,async之间的联系
    callback是最初的异步调用方式;
    promise是一个对象,是为了解决回调地狱的一种新的语法;
    generator函数是协程在js中的实现,返回迭代器对象,当迭代器对象处理的是promise时,可以用同步的语法,完成异步的任务;
    async函数是generator的优化,内置执行器、更好的语义化、更广的适用性,返回的是promise对象;
  12. 观察者模式和发布订阅者模式
    观察值模式是目标和观察者直接沟通,发布订阅者模式是发布者和订阅者通过一个中心进行沟通
  13. 函数节流和函数防抖
    函数防抖:当一个动作连续触发,则只执行最后一次,例如电梯,搜索框搜索输入。函数节流:限制一个函数在一定时间内只能执行一次,例如滚动加载。
  14. 浅拷贝,深拷贝及循环调用
  15. 栈内存和堆内存的区别
    栈内存:主要存储的是值类型(基本类型):String、Number、Boolean、Null、Undefined、Symbol,特点是数据大小与生存期是确定的,存取速度比较快;
    堆内存:主要存储的是引用类型:Object、Array、Function,特点是动态分配内存大小,生存期是由垃圾回收机制决定的,存取速度比较慢;
    值传递和引用传递、浅拷贝和深拷贝实际就是围绕堆内存和栈内存展开的,另外new关键字初始化的数据都是存储在堆内存中的
  16. 形参和实参,函数内部改变后会指向不同的指针

关于css的

  1. Flex样式有哪些属性
  2. css盒子模型,ie盒子模型和标准盒子模型的区别
    ie盒子模型的宽和高包含了border,padding,content,类似于应用了box-sizing:border-box的标准盒子
  3. 对bfc(block formatting context)的理解,页面上一个独立的容器,里面的子元素不会和外面的元素相互影响
  4. 哪些css会触发gpu加速:transform、opacity、filter
  5. css优先级:important>style属性>id>class+属性选择器+伪类>标签+伪元素

其他

  1. 描述一下HTTP2
    http1问题:tcp连接数限制,线头阻塞,header压缩,明文传输
    http2解决:多路复用,头部压缩,服务端推送,二进制帧传输
  2. 浏览器的渲染过程
  3. 浏览器的缓存机制
  4. 浏览器的垃圾回收机制
  5. 对webpack的了解,使用过哪些插件
  6. webpack中哈希值的算法
    常用的哈希值算法有MD5和SHA-1,webpack中有hash、chunkhash、contenthash三个层级的哈希算法来进行不同层级的缓存,默认算法应该是MD5
  7. 前端安全策略,常见的前端攻击及解决方法
    xss(跨站脚本攻击),csrf(跨站请求伪造),sql注入攻击,点击劫持
  8. 浏览器中线程和进程的区别
    进程是cpu资源分配的最小单位,线程是cpu调度的最小单位
  9. 一个有大量图片的页面怎么优化
  10. 页面的重排和重绘
    重排就是在浏览器渲染过程中的渲染树重新计算布局,重绘就是重新绘制渲染树
    所谓脱离文档流就是脱离渲染树,修改脱离文档流的元素如float元素、absolute元素、fixed元素等,不会引起正常渲染树元素的重排,另外在内存的操作也不会引起渲染树的重排
  11. get和post的区别
    传输数据的大小,安全性,对数据类型的限制

 

posted @ 2019-08-21 16:18  笑言哑哑  阅读(166)  评论(0编辑  收藏  举报