# 常规面试题
- 用 setTimeout 实现 setInterval
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,并有较大项目实践经验,加分;
有独立的开源项目或者参与知名开源项目经验,加分;