1、原型/原型链/构造函数/实例/继承
2、有几种方式可以实现继承
3、用原型实现继承有什么缺点,怎么解决
4、arguments
5、数据类型判断
基本:number、string、boolean、null、undefined
Object对象:Function、Array、Date
检测:typeof,注意null不能检测为object类型
Instanceof(判对象),[1,2] instanceof Array
6、作用域链、闭包、作用域
7、Ajax的原生写法
8、对象深拷贝、浅拷贝
9、图片懒加载、预加载
10、实现页面加载进度条
11、this关键字
12、函数式编程
http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html
13、手动实现parseInt
14、为什么会有同源策略
15、怎么判断两个对象是否相等
16、事件模型
事件委托、代理
如何让事件先冒泡后捕获
17、window的onload事件和domcontentloaded
18、for...in迭代和for...of有什么区别
19、函数柯里化
就是把一个多参数的函数,转化为单参数函数
// 柯里化之前
function add(x, y) {
return x + y;
}
add(1, 2) // 3
// 柯里化之后
function addX(y) {
return function (x) {
return x + y;
};
}
addX(2)(1) // 3
参考:http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html
20、call apply区别,原生实现bind
call,apply,bind 三者用法和区别:角度可为参数、绑定规则(显示绑定和强绑定),运行效率、运行情况。
21、async/await
22、立即执行函数和使用场景
23、设计模式(要求说出如何实现,应用,优缺点)/单例模式实现
24、iframe的缺点有哪些
25、数组问题
数组去重
数组常用方法
查找数组重复项
扁平化数组
按数组中各项和特定值差值排序
26、BOM属性对象方法
27、服务端渲染
28、垃圾回收机制
29、eventloop
进程和线程
任务队列