那些我经历过的WEB前端面试题:

外派百度:

   1.说说对事件委托的理解?

  •  事件委托及事件代理,利用事件冒泡的原理将事件绑定在父元素或者是祖先元素上,通过触发父元素或祖先元素,将事件层层传递下去。方法:addEventListener(指定事件名(如click),事件触发执行的函数(function),Boolean(默认false-事件冒泡,true-事件捕获))

  2.promise与async,await的区别?

  • promise是解决异步编程的解决方案,async与await是基于promise实现的。

  3.promise与setTimeout的执行顺序?

  •  同步先行,异步靠边,回调垫底。
  •  setTimeout是回调函数。只能是垫底,所以是promise先执行,最后是setTimeout在执行。
  •  然后了解下promise是解决异步编程的一种方案,它是异步操作,但是需要注意的是.catch(),.then()里面的代码是同步执行的。

  4.forEach与for in 的区别?

  • for in 一般是遍历对象的,也可以遍历数组。
  • forEach一般是遍历数组的,没有返回值

  5.浏览器输入url,之后页面发生了什么?

  • 浏览器查看本地缓存信息新鲜度,足够新鲜会直接返回浏览器,否则的话就会发起HTTP请求
  • 浏览器解析url,获取协议,端口,主机,path
  • 浏览器组装一个请求报文
  • 发起TCP三次握手,关闭TCP四次挥手
  • 服务端返回资源
  • 浏览器解析HTML,建立dom,下载资源,构建css,解析js
  • 浏览器渲染页面展示给用户

  6. 什么是闭包?为什么用闭包?闭包的使用?

  • 闭包就是有权访问另外函数作用域下的变量的函数,当这个函数被外部调用的话,就会形成闭包
  • 闭包突破作用域链,可以访问其他作用域下的变量
  • vue里面的计算属性 computed就是闭包

  7.vue里面的watch与computed区别?

  • watch单一的数据监听,方法名与要监听的名字一样,可以得到数据的修改前后的值,不需要返回值
  • computed是计算属性,会将值进行缓存,内部的值一直没有发生变化的话就一直是缓存的值

  8.vue里面的mixins怎么用?

  •  mixins用[]包裹,里面的变量是引入js创建的文件
  • js对应的里面组件里面都有,生命周期,methods事件
  • mixins不同与组件,父组件引入子组件,相当与给子组件留出一块地方,两个是独立的组件;mixins的引入相当与父组件合并一些方法,扩展了些方法,相当于一体的
  • methods里面键值名起一样的话,会取组件对象的键值对

  9.vuex的理解?详细说下vuex?

  • vuex是数据状态管理
  • vue里面的state存放默认数据变量,通过mutations里面的方法是改变state的操作,不可以直接修改state里面的值,官方意思是不能客观看出state值的变化,不可以跟踪
  • 所以需要用到actions里面的commit触发muttions里面的操作
  • mapState 用法:computed计算属性里面用到,快捷的访问vuex里面的state
  • getter可以理解为store里面state的计算属性,依赖值发生改变的话会被重新计算
  • mapGetters 用法:computed计算属性里面遇到,将store里面的getter映射到组件的计算属性里面
  • actions是提交mutations里面的操作,可以进行异步操作

                     

原文地址:https://www.cnblogs.com/PengZhao-Mr/p/12580592.html