-
重排和重绘
-
什么情况会触发重排和重绘?
…
JavaScript
- 原型链
(1) 创建对象有几种方法?
(2) instanceof的原理?
- 类
(1)类的声明?
(2)生成实例?声明一个类,怎么生成类的实例?
- 继承
(1)call、apply的共同点与区别?
(2)用javascript实现对象的继承/ 继承的几种方式,这几种方式的优缺点?
- 作用域
(1)说说你对作用域链的理解?
(2)this?
- JS闭包
(1)闭包的特征?
(2)闭包应用场景?
(3)实际开发中闭包的应用?
- JS运行机制,单线程,异步
(1)如何理解js的单线程?
(2)js为什么是单线程的?
(3)同步和异步的区别是什么?分别举一个同步和异步的例子?
(4)何时需要异步?
(5)什么是任务队列?
(6)请说出下列的值?
(7)栈和队列的区别?
(8)栈和堆的区别?
(9)什么是event loop?
(10)event-loop流程?
(11)哪些语句会放入异步任务队列中?
(12)何时被放入任务队列?
- JS数据类型
(1)js使用typeof能得到的哪些类型?
(2)如何准确判断一个变量是数组类型?
(3)js变量按照存储方式区分为哪些类型,并描述其特点?
(4)null和undefined的区别?
(5)undefined的典型用法?
(6)null的典型用法?
(7)chrome60+浏览器中,a===b的是哪项?
- JS的内置函数,内置对象
(1)js中有哪些内置函数/ 数据封装类对象?
(2)js中有哪些内置对象?
(3)js变量按照存储方式区分为哪些类型,并描述其特点?
(4)字符串方法/ String对象方法?
(5)数组方法/ Array对象方法?
(6)数组API?
(7)对象API?
- 数组去重
(1)数组怎么去重?
(2)对上述数组去重方法速度比较?
(3)一句话数组去重?
(4)保留数组中非重复元素?
(5)保留数组中重复元素?
-
JS逻辑判断
-
内存泄露
(1)哪些操作会造成内存泄漏?
(2)js内存泄漏的解决方式
- DOM
(1)dom是哪种基本的数据结构?
(2)dom操作的常用api有哪些?
(3)dom节点的attribute和property有何区别?
(4)dom结构操作/ 怎样添加、移除、移动、复制、创建和查找节点/ dom操作的
常用api?
(5)dom事件的级别?
(6)dom事件模型?
(7)dom事件流?
(8)描述dom事件捕获的具体流程?
(9)event对象的常见应用?
(10)自定义事件/ 模拟事件?
(11)通用事件绑定/ 编写一个通用的事件监听函数?
(12)dom树、render树的关系/ dom树、render树的区别(第2、3条)?
- BOM
(1)bom常用属性?
- 通信
(1)什么是同源策略及限制?
(2)前后端如何通信?
(3)跨域通信的几种方式?
(4)jsonp实现?
(5)可以跨域的三个标签?
(6)三个可跨域的标签的使用场景?
- Ajax
(1)ajax请求的原理/ 手写一个ajax请求?
(2)readyState?
(3)ajax异步与同步的区别?
(4)ajax传递中文用什么方法?
- 错误监控
(1)前端错误的分类/ 如何检测js错误/ 如何保证你的产品质量?
(2)错误的捕获方式?
(3)上报错误的基本原理?
- 模块化
(1)amd、cmd区别?
(2)amd、commonJs区别?
- 虚拟DOM
(1)vdom的如何应用,核心api是什么?
(2)虚拟dom转换成真实dom?
(3)diff实现过程?
- JS基础
(1)对js的理解?
(2)请说出以下代码输出的值?
(3)把以下代码,改写成依次输出0-9
(4)如何区分数组对象,普通对象,函数对象
(5)面向对象、面向过程
(6)面向对象的三大基本特性
(7)XML和JSON的区别?
(8)Web Worker 和webSocket?
(9)Javascript垃圾回收方法?
(10)new操作符具体干了什么呢?
(11)js延迟加载的方式有哪些?
(12)WEB应用从服务器主动推送Data到客户端有那些方式?
2. 前端框架
Vue:
知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式
React
知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由
3. 前端算法
-
时间复杂度
-
位运算
-
左移 <<
-
右移 >>
-
按位操作
-
排序
-
链表
-
二叉树
-
递归
…
资料过多,篇幅有限,需要文中全部前端面试资料可以点击这里,免费获取前端面试资料PDF完整版!
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。
其实整个备考的过程中,心态也是很重要的一部分,就好像我们当年高考的时候,心态一定要好。可能同学们经过很长的时间备考,然后投递了很多简历却没有面试机会。
首先要看一下是不是简历写得不好,一般没有机会大部分都是因为这个原因,可以找一下师兄姐聊一下如何修改简历。然后重新投递试试。或者有了面试机会却没有下轮面试了,那就是可能因为你的技术不够扎实,好好准备自己的基础,我推荐你:
写技术博客
不用自己去搭建一个博客(要是可以就更好了),选择一个平台,CSDN或者掘金都是不错的平台,然后就可以开始你的表演了。可以写一些最近的学习心得,面试技巧以及黑科技工具的使用等等。写博客的好处有很多,不仅可以锻炼的表达逻辑,还可以巩固你的知识体系。两全其美,何乐而不为?
另外就是可以多逛一下技术社区,了解前端的动态,多关注最近出了什么新技术、新框架、新八卦等等。试着去帮别人解答一些问题,别人也很愿意去听,但是不要抬杠。乐于分享的心态比技术本身更重要。
写项目
找一个idea,把之前所学的知识点用一下,或者用新的知识来重构一下旧的项目,都是一种产出的方法。如果你担心知识不够牢固可以上一下github找一些优质开源项目,看别人是怎么写的。项目中要把用到技术的那一块注释出来,不然过一个月都不知道是你写的。
交流心得
web浏览器中的javascript
- 客户端javascript
- 在html里嵌入javascript
- javascript程序的执行
- 兼容性和互用性
- 可访问性
- 安全性
- 客户端框架
window对象
-
计时器
-
浏览器定位和导航
-
浏览历史
-
浏览器和屏幕信息
-
对话框
-
错误处理
-
作为window对象属性的文档元素