记录我2021年这半个月陆陆续续的面试题

分享前端面试经验,涵盖this指向、原型链、事件委托、运行机制、Promise、数据类型、数组操作、闭包、跨域存储、Vue核心概念和技术优化。

基于我老老实实两年多的前端工作经验,面试官也没有问特别高深的。

# js基础

1. this指向

这里是有面试官直接在控制台敲了一段代码,让我说出每个this的指向及程序是否会报错。主要的知识点还是在函数中的this指向,方法中的this指向,箭头函数的this指向,bind,call,apply这一些导致的this指向发生的变化,其中有把箭头函数具名化,并且还bind一个对象,但是调用没有报错,这里不知道为什么(汗哒哒)

2. 原型链

主要考点还是问什么是原型链,以及相对应的实现继承的方式。

3. 事件代理

主要是问实现原理,以及为什么要这么做

4. js运行机制-事件循环

大体讲述一遍宏任务微任务这一些,有些只是描述一遍,也有面试官现场出题,说依次打印的东西,实质还是考的整个运行过程。

5. promise 的理解

这种主要会问promise 的实现原理、使用场景等等

6. var let const 的区别

这个基本说烂了吧,只有一个面试官是直接在控制台出题,让我说出几个打印的结果,主要还是考的基本知识点

7. js 基础数据类型

也是说烂了的基本知识点

8. 浅拷贝、深拷贝

浅拷贝深拷贝的区别,以及实现深拷贝,以及用JSON.parse(JSON.stringify(object))来实现深拷贝的时候的一些局限性,比如其中的函数不能序列化,问到用json的方式该怎么处理其中的函数(我当时脑子短路了。。。)

9. 手写正则

面试官随机给个正则规则,给的题比较简单,基础正则规范知道基本都ok

10. 数组的方法

map、filter、reduce、slice等等这些都比较简单的

11. 数组去重

也是相当常见的面试题了。

12. 闭包

函数的嵌套,延长变量作用域 ,可能会导致内存泄漏,及怎么解决这个问题等等 也是常见面试题了

13. call apply bind 的实现原理

Function.prototype.myCall = function(context) {
if (typeof this !== ‘function’) {
throw new TypeError(‘Error’)
}
context = context || window
context.fn = this
const args = […arguments].slice(1)
const result = context.fn(…args)
delete context.fn
return result
}

14.判断数据类型的几种方式及其不足等等
  • typeof (typeof 数组 null newDate()…一些返回的都是object)
  • instanceof
  • constructor
  • Object.prototype.toString.call()
15 var 变量提升相关 面某凯龙的的时候回答错了,变量提升刻进骨子里。。。
var a=10;
(function () {
    console.log(a);
    a=5;
    console.log(a);
    console.log(window.a);
    var a=20;
    console.log(a)
})();
16.好些忘记了的。。。。

# 浏览器相关

1. 跨域

jsonp的实现,平时怎么处理跨域问题,cors(很老实的说了cors不太了解。。。)

2. 存储

cookie 、sessionStorage、localStorage这一些

3. 浏览器的缓存机制
  • 强缓存 Expires 和 Cache-Control
  • 协商缓存 Last-Modified 和 ETag
4. 输入Url,到页面渲染的整个过程

几乎每一个面试官都问了这个问题。。。。

5. 重绘和回流

常见面试题了

6. 安全防范类

这方面了解不多,只简单说了下之前做后端开发的时候遇见过的xss攻击、sql注入这种

7. 门户网站seo

seo优化这种,属实做的不多

8. 其他性能优化相关
  • 图片加载优化
    • 一些修饰图用css代替
    • 合并精灵图
    • 小图用base64代替
    • 其他等等
  • DNS预解析 dns-prefetch
  • 防抖和节流 上一篇有写过相应的函数
  • 资源预加载 preload
  • 预渲染 prerender
  • 懒执行
  • 懒加载
  • 静态资源尽量使用CDN
9. Post 和 Get 的区别
  • GET请求有缓存而Post没有
  • POST相比较更安全一点
  • url有长度的限制会影响GET请求
  • Post 支持更多的编码类型且不对数据类型限制
10. 常用的请求头

能说多少说多少。。。现场一紧张忘的七七八八

11. http2

很老实的说了不了解。。。

12. 设计模式
  • 工厂模式
  • 单例模式
  • 发布订阅模式
  • 代理模式
  • 适配器模式
  • 修饰模式
  • 外观模式
13 数据结构

链表、二叉树、队列 。。。我不行

#CSS相关

1. 垂直水平居中的几种方式

很常见的面试题了

2. bfc 理解及作用

块级格式化上下文,就是一个独立的渲染区域,清除浮动这种比较常用的,以及设计左右定宽中间自适应布局这种

3. flex布局

有问详细说说里面都有哪些属性的,也有出一道题直接用flex布局的,也有问不设置宽高为什么可以垂直水平居中的

4. 清除浮动的几种方式

常见

5. 双飞翼和圣杯布局

这个网上也是一大堆

6. 动画相关

帧动画 过渡动画 canvas动画 js等等

7.忘的七七八八,css问的属实不多

# Vue相关

1. 声明周期
2. Vue整个初始化的过程
3. 父子组件通信传值的几种方式
4. 父子组件之间的生命周期
5. MVVM 理解 双向绑定原理
6. axios 实现原理
7. computed 和watch 区别
8. minin 混入理解
9 .v-if 和 v-show 区别
10. v-for 和 v-if 可以在同一个组件上使用么 如果就是要同时使用v-for 和v-if 怎么处理
11. 监听对象和数组的区别
12. 模板上为什么可以不用写this
13. Vue内置组件
14. keep-alive 有哪些属性
15. vue-router 路由实现原理
16. 组件中的data是对象还是函数,为什么
17.nextTick
18. Vue 编译过程
19. webpack 打包优化
20. webpack 常用插件
21. 脚手架2 和脚手架3的区别
22. 组件封装相关
23. 实现一个弹框组件 有遮盖层、弹框水平垂直居中,考虑点击事件影响、滚动条影响等
24. Vuex 状态管理 理解及使用场景
25. 点击某一个菜单 当中涉及到的请求发送,再点击下一菜单,怎么中止前面已发送的请求
26. 想不起来了。。。

其他

1.开发工具
2.前后端接口怎么对接,接口字段不一致怎么沟通
3.大屏展示 遇到的问题
4.说说自己的优势
5.职业规划
6.有没有想过产品设计
7.项目开发的整个流程
8.为什么转前端
9. 。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值