• 【前端开发】】面试专题梳理总结


    >>面试总结
    面向对象好处:
    扩展好,继承好
    #递归
    函数自己调用自己
    
    #数组扁平化 将二维及多维数组转成一维数组
    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,函数本身也是个对象
    
     -拷贝继承
       -深拷贝继承
       -浅拷贝继承
    -闭包
    闭包的概念:闭包就是能够读取其他函数内部变量的函数;也可理解为闭包是定义在一个函数内部的函数;同时闭包本质是函数内部和函数外部链接起来的桥梁。
    私有的方法和变量避免造成全局污染,缺点是容易造成内存泄漏
  • 相关阅读:
    c#数据类型
    遮罩层
    图片轮播
    js 获取浏览器高度和宽度值
    bootstrap、jquery
    洛谷P1442 铁球落地 题解
    HDU3016 Man Down 题解
    POJ2892 Tunnel Warfare 题解
    HDU2795 Billboard 题解
    CF920F SUM and REPLACE 题解
  • 原文地址:https://www.cnblogs.com/xiaohuizhang/p/11721549.html
Copyright © 2020-2023  润新知