原文链接: https://interview.poetries.top/docs/base/improve.html
进阶篇
简版速记
面试前快速过一遍的核心要点,详细展开见正文各章节。
- 数据类型:8 种——7 基本(
Undefined/Null/Boolean/Number/String/Symbol/BigInt)+ 1 引用(Object)。基本类型存栈、按值拷贝;引用类型存堆、栈里存地址、按引用拷贝。 - 类型检测:
typeof测基本类型(null误判为object、函数为function);instanceof看原型链;最准的是Object.prototype.toString.call(x)。 - this 指向:默认绑定→隐式绑定→显式绑定(
call/apply/bind)→new绑定,优先级依次升高;箭头函数没有自己的this,取定义时的外层。 - 原型链:
实例.__proto__ === 构造函数.prototype,属性查找沿原型链向上直到null。 - 闭包:函数 + 其词法作用域,常用于数据私有化与缓存;注意循环里用
let或 IIFE 避免共享变量。 - 事件循环:同步栈清空 → 清空所有微任务(
Promise.then/queueMicrotask/MutationObserver)→ 渲染 → 取一个宏任务(setTimeout/事件/IO)→ 循环。 - 作用域/提升:
var函数作用域且提升为undefined;let/const块级作用域 + 暂时性死区。 - CSS 布局:优先 Flex / Grid;居中、BFC、盒模型(
box-sizing)、层叠上下文是高频点。 - 浏览器渲染:URL → DNS → TCP/TLS → 请求 → 解析 HTML 建 DOM、CSS 建 CSSOM → 合成渲染树 → 布局 Layout → 绘制 Paint → 合成 Composite。重排比重绘代价大。
- 缓存:强缓存(
Cache-Control/Expires,不发请求)→ 协商缓存(ETag/Last-Modified,命中返回 304)。 - HTTP:HTTP/1.1 队头阻塞,HTTP/2 多路复用,HTTP/3 基于 QUIC;HTTPS = HTTP + TLS。
- 跨域:CORS(服务端响应头)、JSONP(仅 GET)、代理;同源指协议+域名+端口一致。
- Vue:响应式(Vue2
Object.defineProperty/ Vue3Proxy)、虚拟 DOM + diff、computed缓存、watch副作用、nextTick异步更新队列。 - React:单向数据流、虚拟 DOM + Fiber 可中断渲染、Hooks(
useState/useEffect/useMemo/useCallback)、key优化 diff。 - 性能:减少请求、懒加载、代码分割、压缩、CDN、防抖节流、虚拟列表、缓存复用。
- 安全:XSS(转义/CSP)、CSRF(Token/SameSite Cookie)。
- 设计模式:单例、工厂、观察者/发布订阅、代理、装饰器、策略——结合前端场景说出落地例子。
