面试总结 2021.10.22

1.说一下原型与原型链

        a.每个对象都有__proto__属性 指向原型对象__prototype__

        b.每一个构造函数都有__prototype__ ,__prototype__中的coustructor指构造函数本身

        c.每个对象都会继承原型对象中的属性和方法,原型链会枚举刚对象指向的所有原型对象,直至null返回undfiend,

        d. hasOwnPreperty不会遍历原型链

2.VUE中data为什么是函数而不是对象

        a.在component中为函数,new Vue()中可以为对象

        b.component中每一个VUE组件其实为VUE实例,如果每一个data都为对象则data内的属性会被其他VUE实例所影响,而为函数时每个VUE实例中的data拥有各自的函数作用域,this就可以指向当前实例本身

3.不同的ip地址对缓存的影响

        a.  sessionLocal 只有在同源的情况下才能共享

        b.  sessionStorage 会话级缓存,生命周期仅在当前窗口或标签页

        c.   ip不同则会跨域

4.vueX基础

        a. state => 存储数据   调用方法:$store.state

        b.mutaions   => 定义方法  调用方法:$store.commit

        c.actions  =>  异步操作 调用方法:$store.dispatch

        d.getters =>更改存储数据的值 调用方法: $store.getters

        e.modules => 模块化  相当于一个新的store

5.promise对象

        a.promise有三种状态 初始为pending,fulfilled,rejected,一旦状态改变后不会再改变

        b.promise有两个回调函数,reject,resolve,状态fulfilled(成功)调用resolve,状态rejected(失败)调用reject

        c. then方法处理resolve回调函数,catch放出处理rejected回调函数

        d.promise.resolve() 不带参数则生成一个promise对象,状态为fulfilled

        e.promise.reject() 生成一个promise对象,状态为rejected

        f.promise.all() 接受多个promise对象为参数生成一个新的promise实例,当所有promise对象的状态为fulfilled才执行resolve,如果有一个promise对象的状态为rejected,则执行reject

        g.promise.race()接收多个promise对象为参数生成一个新的promise实例,由第一个返回reject或resolve的实例的状态决定

6.微任务与宏任务,事件循环

        a. 任务进入执行栈后同步任务会进入主线程,异步任务会进Event loop进行事件循环

        b.  宏任务 :定时类任务如 setTimeout,setInterval,setImmediate(node.js)

        c.  微任务 : promise.then promise.catch  process.nextTick(node.js)

        d. 当一个宏任务执行完毕后会先检索是否有可执行的微任务,没有的话再开始新的宏任务,这个过程就叫做事件循环

7.检测一个数组类型有几种方式

        a. instanceof 操作符

                示例:

                        console.log(arr instanceof Array)

        b.prototype中的isPrototypeOf  判断某原型是否在指定实例的原型链上

                示例:

                         console.log(Array.Object.isPrototypeOf(arr)) 

        c.Objcet.getPrototyepOf  返回指定实例的原型

                示例:

                        console.log(Object.getPrototyepOf(arr)=== Array.prototype)

        d.constructor 每个实例的constructor都指向创建该实例的constructor

                示例:

                       console.log(arr.constructor === Array)

        e.Object.prototype.toString.call

                Object中的tostring函数会返回 [Object,type],但Array中的tostring被重写,所以要Object.prototype.toString.call通过原型链调用

                示例:

                        Object.prototype.toString.call(arr)

        f.Array.isArray (IE8以下不支持)

                示例:

                        Array.isArray(arr)

                        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值