一、JavaScript基础
变量和类型
-
JavaScript对象
的底层数据结构是什么
-
Symbol
类型在实际开发中的应用、可手动实现一个简单的Symbol
** 相同点:** 1、在 if 语句中 null 和 undefined都会转为 false,两者用相等运算符比较也是相等的
2、Null 和 Undefined 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 null 和 undefined **
不同点:** 1、undefined 代表的含义是未定义
- 定义一个形参,没有传实参,显示的是 undefined
- 一般变量声明了但还是没有定义的时候 会返回 undefined
- 对象属性名不存在时,显示 undefined
- 函数没有写返回值,即没有写 return,拿到的也是undefined 2、**null 代表的含义是 空对象,也作为对象原型链的终点 **
- null 主要用于赋值给一些可能会返回对象的变量,作为初始化
原型和原型链
作用域和闭包
执行机制
语法和API
二、HTML和CSS
HTML
CSS
手写
三、计算机基础
编译原理
网络协议
设计模式
四、数据结构和算法
JavaScript编码能力
手动实现前端轮子
数据结构
算法
五、运行环境
浏览器API
浏览器原理
Node
六、框架和类库
TypeScript
React
Vue
多端开发
数据流管理
实用库
开发和调试
七、前端工程
项目构建
nginx
开发提速
版本控制
持续集成
八、项目和业务
后端技能
性能优化
前端安全
业务相关
小结
是不是以为要结束了,都到小结了,哈哈,给你一个惊喜,再来看一份清单(检验一下成果):
- 1.你关于性能优化是否只知道js文件摆放顺序、减少请求、雪碧图等等,却连衡量指标
window.performance.timing
都不清楚是干什么的?- 2.请你描述下一个网页是如何
渲染
出来的,dom树
和css树
是如何合并的,浏览器的运行机
制是什么,什么是否会造成渲染阻塞
?- 3.请简述下
js引擎
的工作原理,js是怎样处理事件的eventloop
,宏任务源tasks
和微任务源jobs
分别有哪些?js是如何构造抽象语法书(AST)
的?- 4.你是否考虑全面你编写的整个函数,或者整个功能的
容错性
与扩展性
?怎样构建一个组件是最合理最科学的,对于错误的处理是否有统一的方式方法?- 5.
浏览器缓存
的基本策略,什么时候该缓存什么时候不该缓存,以及对于控制缓存的字段的相关设置是否清楚?- 6.你是否可以利用
面向对象
的思维去抽象你的功能,你会构建一个class
(ES6)吗?你对于前端架构的理解?- 7.你会用VUE,你会用React,你读得懂这两个
架构的源码
吗?你懂他俩的基本设计模式
吗?让你去构建一个类似的框架你如何下手?- 8.你了解的
ES6
只是const、let、promise吗?你考虑过ES6提出的真正趋势吗?- 9.你会用less,那么让你去写一个
loader
你可以吗?- 10.
webpack
你也会用,你了解其中原理吗?你知道分析打包依赖的过程吗?你知道tree-shakeing
是如何干掉无用重复的代码的吗?- 11.你真的熟练使用
css
吗,那你知道position有几个属性吗- 12.你了解js的
数据结构
吗?基本数据类型有哪些?复杂数据类型有哪些?在内存是如何表现的?- 13.你可以用js去实现一个
单向、双向、循环链表
吗?你可以实现查找、插入、删除操作吗?- 14.你了解基本常见
算法
吗?快速排序写一个?要是限制空间利用
你该如何写?- 15.你了解
贪心算法
、动态规划
、分治算法
、回溯算法
等常见的算法吗?- 16.你是如何理解前端架构的?你了解持续集成吗?
- 17.你了解基本的
设计模式
吗?举例单例模式
、策略模式
、代理模式
、迭代模式
、发布订阅模式
等等?- 18.写一个
事件监听
函数呗?实现once
、on
、remove
、emit
功能- 19.
node.j
s的实现层是什么?- 20.node的
事件循环机制
是怎样的?- 21.node的
child_process
模块有几个api,分别的作用是什么?- 22.
http1.0
与1.1协议
的区别?- 23.node是如何实现
http模块
的?- 24.如何构建一个
主从模式
?- 25.
nginx
相关配置了解过吗?- 26.你真的理解前端吗? (最最最扎心的问题,看完这些清单,可以试着正式回答一下这个问题)