滴滴日常一面

全程30min,最后一个场景题和答的不太好,完了没有消息了

一,项目有没有上线使用

二,怎么学前端的

三,为什么要学前端,没学后端了啥的

四,JS的基本数据类型

五,null和undefined的区别

六,存储一个基本数据类型和引用数据类型在内存中有什么区别

一个在堆一个在栈

七,堆和栈有什么区别

八,看代码题

 var obj = {a: 1} 
 var objCopy = obj 
 objCopy.a = 2 
 obj.a ?
  1. 怎样修改objCopy而不影响obj? 深拷贝
  2. 深拷贝和浅拷贝的区别
  3. 实现深拷贝的方法

九,什么是函数作用域

十,this的绑定有几种

  1. 代码题解释一下答案
  2. 箭头函数和普通函数的区别

十一,JS是怎么处理异步请求的

事件循环

  1. 代码题
new Promise((resolve, reject) => {
  console.log("promise1");
  resolve();
}).then(() => {
  console.log("promise2");
});

console.log("start1");

setTimeout(() => {
  console.log("a");
}, 2000);

setTimeout(() => {
  console.log("b");
}, 1000);

setTimeout(() => {
  Promise.resolve()
    .then(() => {
      console.log("promiseA");
    })
    .then(() => {
      console.log("promiseB");
    });
});
console.log("start2");

Promise.resolve()
  .then(() => {
    console.log("promise88");
    setTimeout(() => {
      console.log(333);
    });
  })
  .then(() => {
    console.log("promise2");
    setTimeout(() => {
      console.log(555);
    });
  });

讲一下过程

十二,手写题

 let arr = [1,2,[3,4,[5,[6]]]] // 使用闭包实现每隔一秒打印 1,2,3,4

中间用了次let,又问了let和var的区别,说了let会形成块级作用域

又问了块级作用域和函数作用域的区别,这个不太知道怎么答

十三,场景题

有一个接口,他的接收和发送的速度都受网络带宽的影响,可能会有延迟,那么可能会导致处理请求的顺序和发送请求的顺序不一样,那怎么保证返回结果的顺序就是发送请求的顺序

提示一下:用一种数据结构

回答说用队列去实现,然后让我写代码,我不是很理解怎么写

全部评论
promise.all
点赞 回复 分享
发布于 09-23 00:46 广东

相关推荐

1 8 评论
分享
牛客网
牛客企业服务