前端北森一面

12.9一面50分钟(已挂)
错过了秋招,12月份才投的简历。记录一下我的第一次面试过程,面试官人挺好的。

JS相关

1.讲一下继承,然后追问了如何实现原型链继承和构造函数继承?
  • 原型继承
  • 原型链继承
            父类的实例作为子类的原型
            Son.prototype=new   Father()        
                          
  • 构造函数继承  
            function Son(){
                Father.call(this)
            }
  • 组合继承
  • 寄生继承
  • 寄生组合继承
  • class 中的extends继承
  • let,const
  • 箭头函数
  • promise
  • symbol,map,set
  • class
  • 扩展运算符
  • 解构赋值
3.箭头函数
4.this指向问题


  • 函数直接调用分两种情况,严格模式和非严格模式


  • // 非严格,指向window
    function f1(){
      return this;
    }
    f1() === window; // true
    //而严格模式下, this为undefined function f2(){
      "use strict"; // 这里是严格模式
      return this;
    }
    
    f2() === undefined; // true

  • 对象调用指向对象  //obj.fn()
  • 构造函数里的this指向new出来的那个对象
  • 箭头函数的this 指向其所在(即定义的位置)上下文的this值
5.数组去重
  • 2个for循环,重复的就splice,这里要注意splice会影响原数组,删除了一个元素,你的索引记得--,然后在往下。
  • sort排序,相邻两个作比较,也是相同的就splice,注意同上
  • 创建一个新数组,可以用indexOf()或includes()  新数组没有就push
  • arr.reduce((pre,cur)=>{...},[])  //其实原理和上一种方法一样
  • Array.from(new Set(arr))  //利用set数据结构
  • 利用对象的属性  

    if ( !obj[arr[i]] ) {

        res.push( arr[i] );

        obj[arr[i]] = 1;

    }

emmm我讲了上面的那些,但是面试官问还有吗?从算法的角度出发。
我没想出来。
6.讲一下promise
我说了与异步编程相关,解决回调地狱,支持链式调用。以及promise对象的状态
然后面试官问promise如何实现链式回调?就.then之后为何可以.then?
答:.then返回一个promise对象
7.跨域(这里我答的很不好,没讲多少)
  • cors
  • josnp
8.讲一下设计模式
9.垃圾回收机制
  • 标记清理
  • 引用计数
10.call,apply,bind区别
    改变this指向的,参数不同,call,apply调用后立即执行,bind返回一个函数。

vue相关

1.v-model原理
2.slot
3.vuex
4.vue-router
5.vue3.0
6.全局组件和局部组件
  • 全局在main.js中导入import 然后Vue.component() (一些基础组件,复用性高的可以注册为全局组件)
  • 局部组件
7.自定义指令
8.vue的生命周期,以及用哪个钩子函数比较多
    ceated:处理请求
    mounted:操作dom元素
9.场景题--设计一个弹窗组件,渲染内容,位置不定

css相关
1.相对定位是相对于谁
2.css3
  • css选择器
  • 动画
反问:
1.技术栈?react
#北森##面经#
全部评论
感觉好全面...设计一个弹窗组件这里要怎么答呀
点赞 回复 分享
发布于 2021-12-11 22:22
问的挺多
点赞 回复 分享
发布于 2021-12-12 12:27
有下文嘛?
点赞 回复 分享
发布于 2021-12-24 16:48

相关推荐

评论
3
50
分享
牛客网
牛客企业服务