常用面试题归纳

91 阅读2分钟

1.js call()/apply()/bind()的理解

他们都是用来改变this指向的,他们所接受的第一个参数都是所要指向的那个对象,apply接受的其他参数存放在一个数组中,bind和call的其他参数是用‘,’隔开,bind返回一个新的函数需要调用,后面需要跟一个()。

2.回答一下常见的http状态码

QQ截图20220412122512.png

  1. 304:服务器允许访问但未满足条件,不会返回响应的主体部分
  2. 403:服务器拒绝访问,可能是未获得授权

3.说下单页应用和多页应用以及404页面设置

  1. 单页应用是指只有一个html页面,通过vue-router来实现组件的切换,页面切换快,用户体验好,首屏加载慢,不利于seo
  2. 多页应用是指多个独立的html页面,需要通过后台返回html页面,需要单独请求每个页面所需要的资源,切换页面会比较慢,页面无法公用,首屏加载快,利于seo
  3. 在router文件下创建404路由,设置通配符匹配规则,存放与router的最底部,当访问所有的路由存在错误的情况下重定向到404页面

4.说一下深拷贝和浅拷贝

  1. 浅拷贝是只拷贝数据对象的第一层,深层次的数据值和原始数据值互相影响,常见的比如:Object.assign({}, obj), 扩展运算符
  2. 不管对象数据有多少层,改变拷贝后的值都不会影响原始数据,Json.parse()、Json.Stringify()

5.vue首屏优化

  1. 路由懒加载
  2. cdn加速
  3. 配置Gzip进行打包压缩

6.什么是路由懒加载

在访问到当前页面时才会加载相关资源,异步分模块加载文件

7.说一下节流防抖

  1. 防抖:时间在触发n秒后执行函数回调,如果这个n秒内事件再次触发,则重新计时
  2. 节流:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效

8.说一下箭头函数和普通函数的区别

箭头函数里面的this永远指向定义时它所在的上层作用域,无法通过call、bind、apply修改