导语:整理的一些前端面试题,面向不错的前端工程师
1. ES6 基础和高级
1. for of
2. generator
3. let 对比var 有什么样的改进, const 定义的Array能不能修改
4. 标签字符串
5. Array.from, Array.of, Array.includes
6. generator, co, async, await
7. promise
8. decorator -> autobind原理
9. module循环引用
10. mixins
11. import export 相对于require有哪些好处
2. NodeJS
0. 如何判断当前脚本是运行在node还是browser
1. 内存泄漏 原因和排查, 查看内存的占用
2. 多进程
3. 如何避免回调地狱
4. nodejs调试, 分日志和断点
5. KOA express
3. JS基础
1. 闭包
2. 高阶函数的作用
3. 判断一个变量是数组
4. 设计模式
单例, 装饰器, 观察者模式
5. 严格模式
6. js如何实现继承
7.绑定事件, 事件冒泡, 事件委托
8.dom操作有哪些注意点
9.请解释可变 (mutable) 和不变 (immutable) 对象的区别。
10. 异步的几种方式
11. react 使用过程中优化的点, immutable .
12. 函数取整
13. 浮点数减法
请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
不变性 (immutability) 有哪些优缺点?
如何用你自己的代码来实现不变性 (immutability)?
4. 移动H5开发经验
1. 性能测试优化
2. iOS下点击的300ms延迟
3. 异常监控
4. cookie和localStorage区别
5. 缓存脚本如何知道localStorage大小
知道请求脚本大小,以及版本一致性
6. 动态加载脚本, 以及动态加载样式生效
7. 页面性能优化有哪些
8. 对Dom操作优化
9. GPU加速
10. Video标签
11.请指出 document load 和 document DOMContentLoaded 两个事件的区别
12. 请解释 JavaScript 的同源策略 (same-origin policy)
13 什么是事件循环 (event loop)?
请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
14. 如何在函数未执行就知道参数个数
5. 工程化以及技术选型
1. 框架比较
2. 代码质量保证 静态检查
3. 打包压缩
4. 单面面与多页面设计以及实现
5. React相关
1. 直出
2. router,react router后退会把原来的内容清掉,这块有什么好的解决方案
3. redux
4. dom diff
5. key作用
6. refs作用
7. ES6 + React
8. source map
9. react 怎么隔层通知子组件
10. 高阶组件
6. webpack有哪些作用
webpack打包经验
多页面入口打包, 如何抽离公共部分
plugin, loader
7. vue, MVVM
8. 安全方面
1. XSS 跨站脚本攻击
2. CSRF 跨站请求攻击
3. SQL注入
9. http协议
1. 缓存的种类
2. https
3. http 2.0
10. 线上问题调试
11. 笔试题
1. 实现深copy
2. 实现一个sleep方法
3. 实现个加法的柯里化
4. 实现一个promise
12. 最近有学习什么技术吗
其他:
1. bind 函数如何实现
2. 偏函数如何实现
3. 防抖函数如何实现
4. once函数如何实现
5. react
renderToString / renderToStaticMarkup
6. hybrid设计中, js和native如何通信
7. 什么叫做计算属性
7-1. 什么是依赖收集
8. 函数式编程之 compose
9. 循环引用的例子
10. 如何快速定位线上问题
11. react render 分为哪些阶段