# 常规面试题3

render props 和 HOC 的区别 purecomponent 柯里化 高阶函数 尾调用 vue 3.0 proxy Object.defineProperty 原因 线上版本回退 发布流程 开发生产环境区分 调试 dokder 持续集成 babel-polyfil babel-plugin-transform-runtime babel-preset-env htttp2 有哪些优势,对于前端来说会有什么影响? 设计一个登录系统 es6 私有方法 WeakMap 顺序存储结构与链式存储结构的比较(也可以说的顺序表与链表的比较)

HOC(高阶组件)和 Decorator(装饰器)的区别是什么? 如何使用一个 Decorator 来修饰一个函数?

https://github.com/sunyongjian/blog/issues/32

iOS 下 input 无法自动聚焦的问题 手写实现以下事件委托函数 function delegate(parent, selector, handle) {}

手写实现 inherit 函数 手写实现 throttle 函数

请解释 XSS 与 CSRF 分别是什么,两者有什么联系?如何防御? 手写代码实现一下 Array.prototype.trim 这个函数,并写个测试用例跑给我看下 面向切面编程和函数式编程听说过吗

图灵完备理论知道吗?关于图灵的其他知识知道吗?

如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。图灵机由以下几个部分组成: 一条无限长的纸带 TAPE。 一个读写头 HEAD。 一套控制规则 TABLE。 一个状态寄存器。

图片懒加载的两种实现形式

  • 如何实现图片懒加载;
  • 如何提高图片懒加载的效率;
  • PWA 的原理;
  • 如何写一个 PWA;
  • getBoundingClientRect 方法的弊端;
  • 前端性能优化有哪些;
  • 静态资源加载和更新的策略;
  • CDN 服务器的了解和使用;缓存静态资源的注意事项;
  • history 路由和 hash 路由的区别, 在浏览器有什么影响;
  • http 1.1 与 http 2 的区别;
  • 遇到过什么 Webpack 上的坑;
  • 什么是虚拟 DOM;
  • 为什么虚拟 DOM 的操作比 DOM 更快;
  • 谈一下你对 MVVM 的认识;
  • 谈一下你对 Vue 的认识,以及 Vue 底层实现的机制;
  • 写一个自定义事件系统,实现 on、off、emit API,要求可以同时触发多个事件,也可同时取消多个事件
  • 使用 requestAnimationFrame 实现类似 setInterval 的计时器
  • 实现一个类似百度的搜索框,就是一边输入内容,一边在一个下拉列表显示搜索结果,需要考虑哪些问题?
  • file-loader 和 url-loader 区别

淘宝 P6 前端要求,比较泛的能力描述,供参考:

  • 掌握程序设计的一般性原则,能正确应用设计模式

  • 提炼可复用组件,为类库贡献高质量代码;至少掌握一门后端语言,并有相关的开发使用经验

  • 理解程序内部原理,能快速定位解决疑难杂症;通过开发、使用、推广效率工具让自己与团队的效率得到提高

  • 有效跟进,能独立计划实施复杂项目,过程监控,有预案,保证结果

  • 有效传达思想观念信息,把握别人的意图立场,快速与别人达成共识

  • 积极的学习,并学以致用,甚至突破经验与常规思维方式,引入新的方法,流程等

  • 精通各种前端技术(包括 HTML/CSS/JavaScript 等),熟悉 ES6 语法,具备跨终端(Mobile+PC)的前端开发能力,熟悉网络协议(HTTP/SSL),熟悉常见安全问题和对策;

  • 熟悉前端工程化与模块化开发,并有实践经验(如 gulp/webpack、VueJS/React 等);

  • 熟悉 NodeJS,并有实践经验;熟悉一门非前端的语言(如 Java/C/C++ 等),加分;

  • 有桌面客户端相关开发经验(如 Electron/VSCode Plugin 等),加分;

  • 熟悉 TypeScript,并有较大项目实践经验,加分;

  • 有独立的开源项目或者参与知名开源项目经验,加分;