前端学习大纲-基础篇

js基础

  • 数组操作

    • 哪些会改变原数组(pop、splice、reverse等等)

    • 哪些不会改变原数组(map、reduce、filter等)

    • 生成数组的几种方法和区别

    • 数组去重的几种方式

  • 函数

    • 变量提升

    • 具名函数与匿名函数的特性和区别

    • 异步函数的发展史(callback->generator->promise->async/await)

    • 函数链式调用、函数柯里化

    • arguments对象(取参数、caller、callee)

    • 函数作用域链怎么生成

    • 块级作用域(if else、try catch、let的效果)

  • 对象

    • 宿主对象、原生对象、内置对象

    • 深拷贝浅拷贝实现

    • 对象解构,扩展运算符

    • 对象的几种创建方式

    • Object.defineProperty

    • (次要)Proxy与Reflect

  • 值比较

    • ==与===区别

    • 抽象相等比较算法&toPrimitive方法

  • this

    • 隐式绑定与显示绑定,各种绑定this方式的优先级

    • bind、call、apply绑定的区别与源码实现

    • new的原理

    • 几种继承方式:原型链继承、组合继承、寄生组合继承(constructor的丢失问题)等等的实现与优缺点

    • 箭头函数与普通函数的几个区别

    • 严格模式下的this

  • 原型链

    • 记住原型链从末段到顶端的模型

    • Object与Function的关系

    • proto与prototype的含义

    • 类型判断几种方法的区别和具体实现

  • promise

    • 实现原理和PromiseA+规范

    • promise、promise.then与setTimeout的执行顺序(涉及Event Loop的原理)

    • async、await与Generator的关系

    • promise.all、promise.race、promise.catch、deferred对象等细节

  • 正则表达式

    • 分组、分支、单行、多行、全局、match、exec、RegExp

    • 正则的回溯问题

    • 正则在split、replace中的使用

  • 内存泄漏问题

    • 出现情况、如何避免

    • 垃圾回收机制(引用计数算法、标记清除算法、标记压缩算法等等)

  • 其他问题

    • 数字精度问题

    • 位运算的实际应用

    • 进制转换

    • 节流、防抖的实现

    • 中间件的原理实现

    • 几种设计模式的概念

  • 数据结构

    • 队列、栈、链表

    • 二叉树、二分搜索树

    • 堆、最小堆、最大堆

    • 几种排序算法(冒泡、插入、选择、快排)的实现和复杂度比较

    • 具体算法题刷LeetCode

  • 浏览器

    • HTML

      • 事件模型

      • 捕获阶段、冒泡阶段、目标阶段

      • 事件委托

      • DOM0级事件、DOM2级事件

    • Storage

      • localStorage的兼容问题

      • 使用localStorage缓存数据和资源

      • XHTML、HTM4、HTML5的区别

    • css

      • 格式化上下文:BFC、IFC、FFC、GFC概念和应用

      • 块级元素、行内元素的区别

      • css选择器权重算法

      • 样式优先级

      • 移动端ios的穿透问题和300毫秒点击延迟问题

      • css的baseline概念

      • css3新属性/伪类

    • http相关

      • 强缓存、协商缓存机制

      • expire、cache-control

      • last-modified、eTag

      • http各个状态码的概念

      • http2.0与1.0、1.1的区别

    • cookie

      • 如何读写

      • 设置过期时间

      • 设置domain限制、了解domain匹配规则

      • cookie与sessonId的关联

    • ajax请求

      • XMLHttpRequest的使用

      • CORS的简单请求、复杂请求区别

      • 在不同浏览器的兼容

      • ajax的五种状态

      • 和fetch的比较

      • 与form表单请求的区别

      • 几种跨域请求的方式对比(jsonp、CORS、iframe、postMessage等等)

    • 安全防范

      • xss攻击

      • 转义处理、CSP内容安全策略

      • 处理富文本编辑器(设置白名单)

      • CSRF攻击

      • cookie

      • token

    • 浏览器渲染

      • 浏览器渲染过程、输入URL到页面渲染的过程

      • 合成层的原理/GPU加速原理

    • 性能优化

      • 重绘、重排的原理、如何引起如何减少

      • http缓存,见上

      • script的摆放和和defer、async属性

      • chrome的preload、prefetch

      • window.Performance进行页面性能监控(白屏时间、首屏时间、可交互时间等等的计算)

      • CDN加速(原理)、资源合并、压缩

      • 尽量使用css代替js,减少script执行时间

      • gzip压缩

    • (次要)几条浏览器线程的作用

你可能感兴趣的:(前端学习大纲-基础篇)