目录
1.Js中什么是原型?原型的使用场景有哪些?
原型是 JavaScript 中的一个概念,每个对象都会有一个原型,原型也是一个对象,可以理解为对象之间的一种关系。
原型的使用场景主要有两个:继承和方法共享。通过原型链,我们可以实现对象之间的继承关系,使得子类可以继承父类的属性和方法,从而减少代码冗余。另外,原型也可以用来实现方法共享,即多个对象可以共享同一个方法,减少内存消耗。
2.Js中深拷贝和浅拷贝有哪些?有什么区别?
深拷贝:JSON.parse(JSON.stringify());lodash库中的cloneDeep方法;递归;扩展运算符;jQuery 的 extend 方法。
浅拷贝:Object.assign();slice,concat。
区别:浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存。深拷贝复制并创建一个一模一样的对象,不共享内存,修改新对象,旧对象保持不变。
3.什么是递归?有哪些使用场景?
递归是一种算法,指的是一个函数在执行过程中调用自身的行为。
递归的使用场景有很多,比如树形结构的遍历、阶乘等数学问题的求解、斐波那契数列的求解等等。