前端面试要准备的内容

记录一些前端面试过程中可能会问到的问题

基础相关

js原型链继承

  • 参考https://www.jianshu.com/p/6c99d3678283
function Person () {
}
function Student () {
    Person.call(this)
}
Student.prototype = new Person()
  • 主要考虑要同时继承原型上的方法和构造函数上的方法

eventloop

  • 参考 http://www.ruanyifeng.com/blog/2013/10/event_loop.html
    • 主线程 和 eventloop线程
    • 宏任务 和 微任务
      • 宏任务优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval
      • 微任务优先级:process.nextTick > Promise > MutationObserver
      • 顺序 宏任务主代码 -> 微任务(promise)-> 宏任务 (settimeout回调)

http,https

nextTick,setImmediate, Settimeout Promise优先级

理解上可以参考eventloop中的内容

console.log(1);
 
setTimeout(() => {
  console.log(2);
  
  Promise.resolve().then(data => {
    console.log(3);
  });
});
 
 
new Promise(resolve => {
  resolve();
 
  console.log(4);
}).then(() => {
  console.log(5);
 
  setTimeout(() => {
    console.log(6);
  });
}).then(() => {
  console.log(7);
});
 
console.log(8);

BFC

  • Block Formatting Context块级格式化上下文,独立布局环境,不受外界影响,margin不重叠
    • float的值不是none
    • position的值不是static或者relative
    • display的值是inline-block、table-cell、flex、table-caption或者inline-flex
    • overflow的值不是visible
  • 参考 https://blog.csdn.net/sinat_36422236/article/details/88763187

import和requre的区别

  • import es6模块规范,require是CommonJs的语法(AMD引入)
  • export default , module.exports =

JSONP原理

js

  1. 数字千分位处理(正则,非正则)
    • '12312123.00'.replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
  2. 最长公共子序列
  3. 给定一个数组,一个期望值,找到数组中两个相加等于期望值
  4. 节流函数
  5. [1,2,3].map(parseInt)
  6. 快速排序
  7. js动画setTimeout和requestAnimationFrame

css

  1. 垂直居中
    • line-height, table-cell, absolute - margin\transform, flex, grid
  2. 上中下布局
    • flex, minHeight, calc, grid

框架相关

  1. Vue双向绑定原理
  2. Vue相关优化内容
    • 框架层面,加载、拆包
      • 同步接口请求,后延无需的请求
    • 代码层面,key,functional组件,v-once
  3. Vue中nextTick的实现原理
  4. Vue生命周期中各方法都做了些什么

安全相关

  1. XSS - Cross Site Scripting
  2. CSRF - Cross—Site Request Forgery
    • 验证referer
    • 添加动态token
    • SameSite CookieSameSite=Lax

其他

  1. 最有成就感的项目
  2. 近期有在了解哪些新技术
    • serverless、小程序、webassembly、typescript
    • PWA(Service worker、Cache api、Push&Notification、Web App Manifest等)
  3. 问题
冀ICP备2022000825号-1

京公网安备 11010802038733号