【前端开发】】面试专题梳理总结
>>面试总结 面向对象好处: 扩展好,继承好 #递归 函数自己调用自己 #数组扁平化 将二维及多维数组转成一维数组 let arr1=[1,2,3,4,[8,9,7,[11,22]],22,11]; console.log(arr1.flat(Infinity)) //Infinity 无穷 let arr2 = [1,2,{x:1,y:2},3]; console.log(arr2.flat(Infinity)) 手写一个多维数组转一维数组的方法 function flat(items){ let newArr = []; items.foEach(item =>{ newArr.push(item); if(Array.isArray(item.children)){ newArr = newArr.concat(flat(item.children)); //重复调用自己函数 递归 } }) return newArr; } #面试总结下 ##继承 es5和es6有何区别 es6给我们实现了类; es5只能拿函数去模拟类; // _proto_对象的原型链 实例化对象才有的 // prototype 构造函数的原型 构造函数才有的 //关系是:实例化对象的_proto_指向构造函数的prototype,函数本身也是个对象。 ##构造函数的作用:将私有的属性和方法加到实例化对象上; 如下构造函数: function Person(name,age){ this.name = name; this.age = age; } var leo = new Person("leo",41); js中的继承 ###-构造函数的继承如下 call apply call 父函数名字.call(this,参数1,参数2) apply 父函数名字.apply(this.arguments/参数数组格式) function Person2(name,age,skill){ Person.call(this,name,age) this.skill = skill } var zm = Person2("zhangsan",21,"喜欢敲代码") -原型链继承 原型链概念:当我们在调用对象的属性和方法时,如果对象没有这个方法,就去原型链里找 // _proto_对象的原型链 实例化对象才有的 // prototype 构造函数的原型 构造函数才有的 //关系是:实例化对象的_proto_指向构造函数的prototype,函数本身也是个对象 -拷贝继承 -深拷贝继承 -浅拷贝继承 -闭包 闭包的概念:闭包就是能够读取其他函数内部变量的函数;也可理解为闭包是定义在一个函数内部的函数;同时闭包本质是函数内部和函数外部链接起来的桥梁。 私有的方法和变量避免造成全局污染,缺点是容易造成内存泄漏
本文来自博客园,作者:JeckHui;
个人主页:前端实用站点推荐; 热榜资讯早读:热榜资讯-导航;
转载请注明原文链接:https://www.cnblogs.com/xiaohuizhang/p/11721549.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)