准备面试题

new的时候做了什么?

//1,创建了一个空对象

//2,将空对象的原型,指向于构造函数的原型 

 //3,将空对象作为构造函数的上下文(改变this指向)

 //4,对构造函数有返回值的处理判断

 //浅拷贝和深拷贝

 闭包

 原型链:

        1,原型可以解决什么问题

                     对象共享属性和共享方法

        2,谁有原型

                      函数拥有:prototype

                       对象拥有: __proto__

        3,对象查找属性或者方法的顺序

function Fun(){

      // this.run = '1'

    }

    // Fun.prototype.run = '2'

    var obj = new Fun()

    // obj.run = '3'

    // obj.__proto__.run = '4'

    Object.prototype.run = '5'

    console.log(obj.run);

    //打印结果是:3,1,4,2,5

1:先在对象本身查找-->

2:构造函数中查找-->

3:对象的原型查找-->

4:构造函数的原型中找-->

5:当前原型的原型中查找

        4,原型链是什么?  就是把原型串联起来

        5,原型链的最顶端是null

             

var const let 三者的区别

var 存在变量提升,而 const 和 let 不存在变量提升

let 不能重复定义,关键字允许值得修改

const 不能重复定义,关键字不允许值得修改

       

//1,new Set

    let arr = [1,1,2,2,3,5,4,3]

      // console.log([...new Set(arr)])

        function unique(arr){

            return [...new Set(arr)]

        }

        console.log( unique(arr))

    //2,indexOf

      let arr1 = [1, 1, 2, 2, 3, 5, 4, 3]

        function unique(arr){

          let brr = []

          for(let i=0;i<arr.length;i++){

            if(brr.indexOf(arr[i])== -1){

              brr.push(arr[i])

            }

          }

          return brr

        }

        console.log(unique(arr1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值