前端开发模拟面试
第一题:核心与基础
Q:请简述 HTTP/1.1, HTTP/2 和 HTTP/3 在连接管理和性能优化方面的核心区别。你认为这些演进对现代前端开发(尤其是复杂应用)带来了哪些具体影响?在资源加载策略上,你会如何利用这些协议的特性?
A:
连接管理对比
- HTTP/1.1:每个域名 6-8 个 TCP 连接,队头阻塞
- HTTP/2:单连接多路复用,帧优先级控制
- HTTP/3:QUIC 基于 UDP,解决 TCP 队头阻塞,支持连接迁移
性能优化差异
- HTTP/2:Header 压缩(HPACK)、Server Push(需谨慎使用)
- HTTP/3:TLS 1.3 内置、0-RTT 建连、更灵活的拥塞控制
前端落地策略
- 利用多路复用:减少域名分片(反模式 HTTP/1.1),合并小请求 → 权衡缓存粒度
- 优先级控制:通过
<link rel="preload">或 HTTP/2 的依赖树(Dependency Tree) - QUIC 优势场景:弱网环境保留会话状态(如地铁扫码场景)
当面试官追问时,需用真实项目经验佐证(如:“我在xx项目通过调整资源优先级,使 LCP 优化 40%”)
CSS 查漏补缺
专题知识学习:TypeScript
一、TypeScript 基础与核心概念
1.1 类型系统深入
1.1.1 基本类型与类型推断机制
基本类型(Primitive Types)
| 类型 | 描述 | 示例 |
|---|---|---|
| string | 字符串类型 | let name: string = “Alice” |
| number | 数值类型(含整数/浮点数) | let age: number = 30 |
| boolean | 布尔类型 | let isDone: boolean = true |
| null | 空值(需开启 strictNullChecks) | let n: null = null |
| undefined 未定义值 | let u: undefined = undefined | |
| symbol | 唯一标识符(ES6) | const sym: symbol = Symbol() |
| bigint | 大整数(ES2020) | let big: bigint = 100n |
| void | 无返回值(函数) | function warn(): void { console.log() } |