【饿了么】前端岗-前端三面

  1. 介绍自己都做了什么项目以及背景
  2. 介绍一下项目难点
  3. src是一个普通的url和base64图片的区别?
  4. vue和js有看过什么源码
  • vue双向绑定,全家桶vuex,router都有看过
  • promise的源码也都有看过
  1. 口述promise实现过程(啊,,,差不多讲了8分钟吧,面试官叫停了,说差不多了)
  2. 说说Promise.all,race,any的区别
  • 两个函数返回值的区别
    function func1() {
    return [1, 2, 3]
    }
    function func2() {
    return Promise.resolve([1, 2, 3])
    }
    let res1 = func1()
    let res2 = func2()
    
  1. 下面两种写法的区别
    console.log(123);   //  直接执行
    setTimeout(() => {
    console.log('123');   //0s后把回调放入队列里面,等主线程空闲取出执行
    }, 0)
    
  2. 讲讲js的事件循环

  3. es6的class里面的继承)

  • 什么是super
  • 如果不写这个super会怎么样?报错?为什么?从继承和实例的关系想想?我还是不会….
  1. 讲讲prototype__proto__,原型
  2. 讲讲闭包
  • 作用域链下自然的产物
  • 大量引用闭包会增大内存
  • 被引用的变量不会在函数执行完后马上被销毁
  • 匿名函数传参调用实现块级作用域和柯里化函数都利用了闭包
  1. 讲讲ajax,axios,fetch,xmlHttpRequest

  2. 讲了一下axios的拦截器功能

  3. axios请求返回的是一个promise对象,你如何自己利用xmlHttprequst实现一个类似的功能?promise包一下就行

    function myRequest() {
    return new Promise((resolve, reject) => {
       var xmlHttp = new XMLHttpRequest()
       xmlhttp.open('GET', url);
       xmlHttp.onreadyStateChange = function () {
           if (xmlHttp.readyState == 4) {
               if (xmlhttp.status >= 200 && xmlhttp.status < 300 ||
                   xmlhttp.status === 304) {
                   resolve(xmlhttp.responseText)
               }
           } else {
               reject(xmlhttp.status)
           }
       }
    })
    }
    
  4. 刚刚的onreadyStateChange和onload的区别

  • 状态是4的时候也可以使用onload
  1. vue2和vue3
  • vite
  • defineProperty和proxy
  • watcheffect
  • 引入组合式API的概念
  1. vue2和vue3的domDiff有改动吗?
  • 我不太清楚有没有改动
  • 那你说说domdiff和直接操作dom有什么区别
  1. 说说reflect这个api,为什么proxy要结合reflect进行修改
  • 容错处理更强,会直接返回布尔值
  1. commonJS和esModule的区别
  • 一个是运行时加载,一个是编译时加载,可以做一些优化
  • esModule可以成为浏览器和服务器通用的一个解决方案
  • 那你说nodeJS里面用esmodule引入导出模块需要进行什么配置(???)
  • 我很懵,面试官说可以babel,编译,配置,修改后缀…
  1. 讲讲三次握手的全过程
    经典问题了哈哈哈 ,答得非常教科书,才讲到第一次握手面试官就说嗯嗯,差不多,叫停
  2. http2的新功能
  • 服务端推送,多路复用,头部压缩,二进制
  1. 扩展专业知识
    爬虫,数据可视化,机器学习测试数据集等等
  2. 大数据当中涉及到矩阵相关的计算怎么处理的?(并行进行处理)
  3. 常见的归一化方案,值域的收敛怎么做的(孩子不知道啊..)
  4. 终于到了反问环节QAQ!
  • 问了面试官对目前流行的前端全栈工程师怎么看(答:我不认为全栈是一个特别好的发展方向,该把自己该做的方向做到最好再去考虑后面的,并且不认为nodejs是一个特别有深度的后台技术)
  1. 最后问我的后续规划
  • 继续学react和小程序,typescript这些我还不是很熟的

发表评论

后才能评论