Web 面试题
参考答案请查阅《Web-Notes》
Web Interview
开发基础
HTML
CSS
DOM
- 如何使用递归实现
Web 的getElementById ?
网络请求
-
CORS 是什么?它的跨域请求规则是什么样子的? -
Axios 中如何取消掉某个请求?其在内部是如何执行请求撤销的操作的?Axios 如何取消重复请求?
工程化架构
客户端可用性
-
如何设计一个客户端错误上报系统?应该如何捕获常见的浏览器错误?
-
如果设计一个客户端实时录屏系统,可能的技术挑战点会在哪里?应该如何去设计前后端架构?
状态管理
Redux 的设计理念,其与Flux 的区别?为什么Redux 的Store 会使用不可变数据类型?如下的使用可能会有哪些风险?
export default connect(
state => (...state),
{ ...commonActions }
)(withRouter(App));
-
Redux 中的Reducer 为何要设置为纯函数?常见的Side Effects 应当在哪个模块中处理?combineReducer 函数是如何实现的? -
Redux 的中间件是如何实现的?如何在Redux 中实现简单的Promise 中间件? -
Redux 常见的异步处理机制,简单的Thunk 组件实现? -
Redux Sagas 为何要使用Generator ?put, get 等函数的原理是什么?其是如何处理Effects 的? -
MobX 是如何实现响应式监听的?MobX 与Redux 相比其适用场景、工程案例上有何差异? -
Dva 中的典型模型由哪几个部分组成,各自负责些什么?
响应式界面
- 如何实现动态主题切换的效果?
性能优化
-
简单概述浏览器工作原理,即从用户输入某个
URL 开始到渲染,经历了哪些主要的步骤?浏览器的核心组件包含哪些? -
如何设计一个
JavaScript 应用沙箱?
跨端开发
Taro 等小程序跨端框架的实现原理是啥?编译时框架与运行时框架有何异同?