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 等小程序跨端框架的实现原理是啥?编译时框架与运行时框架有何异同?