JavaScript核心
- 异步编程
- Promise、async/await 的工作原理及应用场景。
- 如何处理并发请求,使用
Promise.all()
或Promise.race()
等方法。 - 解释事件循环机制,理解微任务(microtask)与宏任务(macrotask)的区别。
- 原型链
- 深入理解JavaScript中的原型继承模型。
- 举例说明如何通过修改原型对象影响所有实例。
- 闭包
- 定义闭包及其作用,如实现私有变量和函数工厂模式。
- 分析闭包可能导致内存泄漏的情况。
- 类和面向对象编程
- ES6引入的
class
语法糖背后的原型链实现。 - 静态方法、getter/setter、构造函数等特性。
- ES6引入的
- 错误处理
- 使用try…catch捕获异常,以及finally的作用。
- 自定义Error对象,创建特定类型的错误信息。
HTML/CSS基础
- HTML语义化标签
<article>
、<section>
、<header>
、<footer>
等标签的正确使用场景。- 对SEO和可访问性的好处。
- CSS选择器优先级
- ID选择器、类选择器、元素选择器之间的权重关系。
- 继承、层叠规则对样式的最终影响。
- 响应式设计
- 使用媒体查询适应不同设备尺寸。
- 移动端特有的单位如vw、vh的应用。
框架与工具
Vue.js
- 组件通信
- 父子组件间的数据传递方式(props、events)。
- 非父子组件间的沟通策略,例如Vuex状态管理模式。
- 生命周期钩子
- 不同阶段触发的钩子函数及其用途。
- 如何利用这些钩子进行初始化、清理操作。
React.js
- JSX语法
- JSX表达式的编写规范,以及它编译成React.createElement的过程。
- 虚拟DOM
- React如何通过Diff算法最小化真实DOM更新次数。
- 键(key)属性的重要性,确保列表项唯一标识。
Webpack/Vite
- 优化配置
- Tree shaking移除未使用的代码。
- Code splitting按需加载模块。
- 缓存策略提升构建效率。
性能优化
- 减少重绘与回流
- 批量执行样式更改,避免频繁触发浏览器布局计算。
- 使用GPU加速(transform、opacity)代替CPU密集型属性变化。
- 资源预取与预加载
rel="preload"
和rel="prefetch"
的区别及其适用场景。
网络与安全
- HTTP/2 vs HTTP/1.1
- 多路复用、头部压缩等新特性带来的性能改进。
- HTTPS加密过程
- SSL/TLS握手流程,公钥基础设施(PKI)的基本概念。
- CSP(Content Security Policy)
- 设置严格的策略防止XSS攻击。
算法与数据结构
- 复杂度分析
- 时间复杂度O()表示法,评估算法效率。
- 空间复杂度考量,特别是递归调用栈空间消耗。
- 搜索算法
- 广度优先搜索(BFS)、深度优先搜索(DFS)的特点及应用。
其他
- Web API
- Fetch API替代XMLHttpRequest的优势。
- Service Worker缓存管理和服务工人消息传递。
- PWA (Progressive Web Apps)
- 将网站转换为渐进式Web应用程序所需步骤。
- 离线支持、推送通知等功能实现。