Javascript:
基本数据类型,基本类型和引用类型之间的差异;
熟练运用es6提供的语法规范;
熟悉基本数据类型对应的操作方法,特别是数组和对象;
理解javascript基于原型编程的原理(这回事),理解原型,原型链;
熟悉es5和es6实现继承的方式;
理解作用域和执行上下文,能区分call,apply,bind三者之间的区别;
了解闭包,能说出在js中对于闭包的定义(闭包是什么东西);
异步编程,能说出js中实现异步编程的几种方式;
熟练使用Promise、async/await,并当成主要的异步解决方案;
能区分常用的宏任务和微任务,知道两者定义;
了解javascript的异步机制,以及Node中的Eventloop;
能写常用的正则表达式;
能基于es6进行oop编程;
理解ajax的原理,能书写简单的原生ajax;
简单的调试方法。
HTML:
能区分行内元素和块级元素;
元信息类标签的使用目的(title、head、meta);
了解浏览器绘制dom树的大致原理,理解重绘重排;
会使用canvas,svg。
CSS:
盒模型;
选择器的优先级;
水平垂直居中方案,越多越好;
至少会使用一种预处理语言,Sass、Less等;
熟悉css3规则,动画、过渡、渐变等;
常用的兼容方案;
能手写一套完整的响应式布局方案;
熟练使用flex布局。
数结构和算法:
熟悉栈和队列原理及相关其规则;
熟悉链表原理,以及使用场景,主要是单向链表;
哈希表的原理,以及使用场景,能说出解决hashcode重复的方案;
二叉树的原理,以及其遍历方法,能将实际问题转化成二叉树模型;
冒泡排序的原理,能手写冒泡排序,并能写出其优化方案;
选择排序的原理;
熟悉二分法的原理,并能手写二分法查询;
了解时间空间复杂度;
能够熟练使用递归调用。
运行环境:
熟悉浏览器的常用APi,如cookie、本地存储等等;
理解DOM,BOM原理,能熟练调用DOM各类接口方法;
能够理解DOM事件流机制;
理解浏览器同源策略,能提供跨域请求的解决方案,理解jsonp原理;
熟悉NodeJs应用场景,理解I/O概念,能熟练使用网络、文件系统等接口,并使用NodeJs写一些简单的小工具;
浏览器跨窗口通信;
XSS攻击原理以及防御方案。
前端工程:
熟悉npm包管理;
理解webpack基本原理;
能够搭建简单的前端工程。
三大框架:
Vue:
熟练使用vue提供的基本语法;
熟悉vue双向数据绑定的原理;
熟悉vue生命周期及其对应钩子函数;
熟悉vue路由,并理解其原理,能熟练使用导航守卫;
熟悉Vuex,区分mutation和action;
能够封装高质量的组件。
后端知识:
熟悉基本的sql语句;
能够看懂表结构,表之间关联,至少会使用一种数据库;
能说出至少一种关系型和非关系型数据库;
搭建简单的web服务器。