2020前端面试笔记

Js相关:

1、js继承:

    构造函数继承

    call&apply继承

    原型继承(prototype继承)

2、Js原型链

        JS中每个对象都有一个_proto_属性指向这个对象构造函数的prototype对象,这个prototype对象也有一个_proto_属性,这样形成的一个链条称之为原型链。

3、闭包

       闭包就是能够读取其他函数内部变量的函数,由于在JS中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函外部连接起来的一座桥梁。

缺点:内存泄漏。解决办法:在退出函数之前,将不使用的局部变量全部删除。

4、call、apply、bind

    三者都是为了可以改变函数运行时的上下文,即改变this指向问题。

    call和apply的区别是:apply的第二个参数是一个数组和类数组,而cal的第二个参数接收的是一个多个参数列表。

apply可以实现继承,而call()是apply()的一颗语法糖。

bind与call和apply的区别是:call()和apply()在调用函数之后会立即执行,而bind()方法调用并改变函数运行上下文后返回一个新的函数,供我们需要时再调用。

你可能感兴趣的:(2020前端面试笔记)