前端面试问问题5

129 阅读2分钟
  1. 闭包是什么?
  • 一个持有外部环境变量的函数
  • 存在自由变量的函数
  • 优点:可以读取函数内部的变量,让这些变量的值始终保存在内存中
  1. 阻止冒泡方法?
  • event.stopPropagation();事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转)
  • ★return false;事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)
  1. vue中的data为什么是函数形式?
  • 为了保证组件的独立性和可复用性,data是一个函数,
  • 一个组件被复用多次,也就会创建多个实例,这些实例用的都是同一个构造函数。如果data是对象的话,对象属于引用类型,会影响到所有的实例。所以为了保证组件不同的实例之间data不冲突,data必须是一个函数。
  1. vue-cli如何使用json数据模拟?
  • 使用express搭建静态服务
  • mock数据写在json文件中,proxyTable 里将接口代理到具体mock数据json文件上
  1. 前端常用的性能优化有哪些方法?
  • 将CSS和JS放到外部文件:目的是缓存文件

  • 把CSS放到顶部:网页资源加载从上而下顺序,所以css放在页面顶部能够优先渲染页面,让用户感觉页面加载很快。

  • 把JS放到底部:加载js时会对后续的资源造成阻塞,必须得等js加载完才去加载后续的文件 ,所以就把js放在页面底部最后加载。

  • 避免空的src和href:空的话渲染页面会被当属性

  • 避免使用CSS表达式:影响页面的性能

  • 精简CSS和JS:这里就涉及到css和js的压缩了。比如下面的新浪的一个css文件,把空格回车全部去掉,减少文件的大小。现在的压缩工具有很多,基本主流的前端构建工具都能进行css和js文件的压缩,如grunt,glup等。