目录
1、new 操作符具体干了什么呢?
(1) 创建一个新对象;
(2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象);
(3) 执行构造函数中的代码(为这个新对象添加属性);
(4) 返回新对象(隐式返回)
2、JavaScript 对象的几种创建方式?
字面量
实例
工厂模式
构造函数
原型模式
混合模式
动态混合
3、JavaScript 原型,原型链?
原型:js每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加。
原型中存储对象共享的属性和方法。
原型链:当像查找对象的属性的时候,先找自身,如果自身没有,则找顺着__proto__找到原型,如果原型也没有,则继续向上找,一直找到Object的原型。这个查找这个链表就是原型链。
4、什么是回调函数,作用是什么?
将函数做为参数传给另一个函数执行的函数,是解决异步操作的有效途径
5、什么是闭包,闭包有什么作用,说说你对闭包的理解。
- 1、函数嵌套函数
- 2、内部函数可以读取外部函数的变量、参数或者函数
- 3、这个内部函数在外部函数的外面被调用
作用:沟通函数内部和外部的桥梁
6、分别解释防抖节流。
防抖:就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
节流:就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。
7、call 和 apply 的作用和区别?
作用:调用函数,并修改函数中的this指向
区别:call的后续参数是一个一个传入的,而apply是以一个数组的形式传入的