知识图谱:
-
HTML/CSS 基本知识
-
HTML/CSS 常见布局(Flex布局)
-
HTML5/CSS3 新增内容
-
React + 底层原理 + 性能优化 + 高阶组件 + Redux
-
JavaScript模块化 + cmd/umd/es6 import + React中的使用
-
Microtask + Macrotask,事件循环
-
移动端页面适配-REM
-
Vue,底层原理,周边生态
-
异步编程【Callback, Promise,Async/Await】+ Ajax【XHR/Fetch/Axios】
-
函数、作用域、闭包、继承、内置对象、原型链、this + 面试题
-
前端性能优化
- 移动端优化
- 网络优化
- HTML/CSS 优化
- JS优化
- 常用的语义化标签? => 对于 HTML 语义化的理解
- 如何实现页面类似 iPhone 悬浮球的效果? => position有哪几种属性 => 定位的效果
- 用户第一次访问页面中时弹出引导,用户关闭引导,之后再次进入页面时不希望出现引导,如何实现? => 缓存 localStorage/sessionStorage
<img>
的title和alt有什么区别- display: block;和display: inline;的区别
- 盒模型 (Box Model) -> box-sizing IE盒模型/标准盒模型
- 实现垂直居中的方法 CSS3/JS/Flexbox/line-height
- 移动端适配
- CSS兼容性问题解决
- 伪类和伪元素的作用与区别
- JS有哪几种数据类型
- == 和 === 的区别,你一般用哪个
- setTimeout和setInterval的作用与区别
- 什么是类数组对象,如何将类数组对象转为真正的数组?
- 对于 JavaScript 的理解,如何改变 this 的指向
- JavaScript call/apply的区别
- JavaScript bind函数的作用
- let为ES6新添加申明变量的命令,它类似于var,但是有以下不同:
- let命令不存在变量提升,如果在let前使用,会导致报错
- 暂时性死区的本质,其实还是块级作用域必须“先声明后使用”的性质。
- let,const和class声明的全局变量不是全局对象的属性。
const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)。
const只是保证变量名指向的地址不变,并不保证该地址的数据不变。const可以在多个模块间共享 let 暂时性死区的原因:var 会变量提升,let 不会。
箭头函数不属于普通的 function,所以没有独立的上下文。箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 由于箭头函数没有自己的this,函数对象中的call、apply、bind三个方法,无法"覆盖"箭头函数中的this值。 箭头函数没有原本(传统)的函数有的隐藏arguments对象。 箭头函数不能当作generators使用,使用yield会产生错误。
在以下场景中不要使用箭头函数去定义:
- 定义对象方法、定义原型方法、定义构造函数、定义事件回调函数。
- 箭头函数里不但没有 this,也没有 arguments, super ……
- 使用过 Ajax 吗,知道 Ajax 的实现吗?Fetch和Ajax的区别
- HTTP的请求方式,Get/Post 的区别,什么时候应该用 Get/Post
- 跨域问题 => CORS/JSONP => 浏览器同源策略/JSONP原理
- HTTP常见的状态码, 200/300/400/500
-
从 URL 输入到页面展现发生了什么?
-
聊一聊 你觉得做的最自豪的项目?
Tips:可以从以下几个方面回答
- 是什么项目
- 这个项目做的是什么, 能线上预览更好
- 涉及的技术栈
- 中间遇到了哪些问题,你是如何解决的
- 项目收益或者通过项目学到了什么
-
如何进行网站性能优化
- 日常的 Git 操作
- Git fetch的作用