- DOCTYPE
- 严格模式与混杂模式
- box-sizing
- HTML语义化
- cookies,sessionStorage 和 localStorage
- iframe
- script放在body底部原因,link放在head里的原因
- async、defer区别
- SEO: TDK
- 标签上title与alt属性的区别
- 响应式图片(srcset)
- 渐进式渲染(progressive rendering)
- 国际化,本地化
- SVG 与canvas的区别
- 盒子模型
- 权重优先级
- 继承属性
- 伪类、伪元素
- flex
- 布局
- 多列等高、圣杯、双飞翼
- Grid
- BFC
- position
- 清除浮动
- 预处理器
- line-height
- display:inline-block 间距问题
- rem
- 重排、重绘
- BEN命名规范
- 模块化
- hack
- CSS动画与JS动画的差异及卡顿
- 请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?(selector)
- z-index 和叠加上下文
- translate() 与 absolute position 区别
- visibility: hidden 与 display: none; opactity: 0
- 像素比
- ref="noopener"
- 基本数据类型
- null,undefined的区别
- attribute与property的区别
- 0.1 + 0.2 !== 0.3浮点数不精确的问题
- 原型链
- instanceof、typeof
- 继承
- 作用域
- 作用域链、变量提升、 AO VO
- this
- 事件模型
- 事件冒泡、事件捕获、事件代理、自定义事件
- new
- 闭包
- ajax
- call、apply、bind
- 防抖、节流
- 柯里化、反柯里化、偏函数
- 盒子模型对应的宽高 offsetWidth/offsetHeight,clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别
- 跨域
- JSONP CORS 同源策略
- 隐式类型转换规则
- like array,arguments
- 深、浅拷贝
- 数组高阶函数map、filter、reduce
- 正则
- setTimeout(不精确问题) 和 setInterval requestAnimationFrame
- EventLoop: Node事件循环与浏览器事件循环的区别 @墨菲斯托 @迪亚波罗
- macrotask与microtask切换机制与执行顺序
- 字符串方法 substr和substring
- Promise
- async、await、 generator sleep函数
- 尾递归优化
- 模块加载:IIFE AMD CMD CommonJS
- document load 和 document DOMContentLoaded 两个事件的区别
- onclick 与 addEventListener 区别
- webworker
- HTML5 API
- Notification
- GeoLocation
- Location
- 输入url到显示页面 @迪亚波罗
- DNS预解析,CSSOM,DOM,缓存,TCP三次握手、四次挥手,,304,强缓存、协商缓存
- 状态码:206,301,302,400,401,403细节
- GET、POST
- Long-Polling、Websockets 和 Server-Sent Event 之间有什么区别?
- 负载均衡
- CDN缓存
- http和tpc的关系
- 浏览器特性检测
- HTTP1.1 HTTP2 @墨菲斯托
- HTTPS
- 栈
- 堆
- 队列
- 图
- 树
- 工厂模式
- 单例模式
- 状态机
- 观察者
- 策略模式
- 适配器
- 装饰器
- MVC
- MVVM
- MVP
- 内存管理: 分片 分段
- 垃圾回收 -> Node V8
- 内存泄露
- Webpack Babel ESLint的原理
- AST
- XSS
- CSRF