# 大佬的面经

# 快手

  1. 请写下以下代码执行结果:
var a = { x: 1 };
var b = a;
a.x = a = { n: 1 };
console.log(a);
console.log(b);
1
2
3
4
5
  • {n:1}
  • {x:{n:1}
  1. 请写出以下代码执行结果
Function.prototype.a = () => {
  alert(1);
};
Object.prototype.b = () => {
  alert(2);
};
function A() {}
const a = new A();
a.a();
a.b();
1
2
3
4
5
6
7
8
9
10
  • a.a is not a function
  • alert(2)
  1. 请写出以下代码执行结果
let a = 0;
console.log(a);
console.log(b);
let b = 0;
console.log(c);
function c() {}
1
2
3
4
5
6
  • 0
  • Uncaught ReferenceError: Cannot access 'b' before initialization
  1. 请写出以下代码执行结果
var x = 10;
function a(y) {
  var x = 20;
  return b(y);
}
function b(y) {
  return x + y;
}
a(20);
1
2
3
4
5
6
7
8
9
  • 30(作用域链)
  1. 请写出以下代码执行结果
console.log(1);
setTimeout(() => {
  console.log(2);
});
process.nextTick(() => {
  console.log(3);
});
setImmediate(() => {
  console.log(4);
});
new Promise(resolve => {
  console.log(5);
  resolve();
  console.log(6);
}).then(() => {
  console.log(7);
});
Promise.resolve().then(() => {
  console.log(8);
  process.nextTick(() => {
    console.log(9);
  });
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  • 156378924
  1. 请写出以下代码执行结果
[1, 2, 3, 4, 5].map(parseInt);
1
  • [1, NaN, NaN, NaN, NaN]
  1. 请写出以下代码执行结果
typeof typeof typeof [];
1
  • string
  1. 以下 css 最后是什么颜色
<style>
div{color:red}
#title{color:yellow}
div.title{color:blue}
</style>
<div class="title" id="title">abc</div>
1
2
3
4
5
6
  • 黄色
  1. 什么是死锁

  2. 实现以下代码

function add() {}
function one() {}
function two() {}
console.log(add(one(two()))); //3
console.log(add(two(one()))); //3
1
2
3
4
5
function add() {
  return arguments[0];
}
function one() {
  let b = arguments[0] || 0;
  return b + 1;
}
function two() {
  let a = arguments[0] || 0;
  return a + 2;
}
console.log(add(one(two()))); //3
console.log(add(two(one()))); //3
1
2
3
4
5
6
7
8
9
10
11
12
13
  1. 请实现一个 cacheRequest 方法,保证发出多次同一个 ajax 请求时都能拿到数据,而实际上只发出一次请求。
  2. 实现一个函数柯里化
const curry = function(fn) {
  let len = fn.length;
  return function curried(...args) {
    if (args.length === len) {
      return fn.apply(null, args);
    }
    return (..._args) => {
      return curried.apply(null, [...args, ..._args]);
    };
  };
};
1
2
3
4
5
6
7
8
9
10
11
  1. 经典爬楼梯问题。
function climbStairs(n) {
  if (n === 1) {
    return 1;
  }
  let dp = new Array(n);
  dp[0] = 1;
  dp[1] = 2;
  for (let i = 2; i < n; i++) {
    dp[i] = dp[i - 1] + dp[i - 2];
  }
  return dp[n - 1];
}
1
2
3
4
5
6
7
8
9
10
11
12

# 高德

  1. .字符串类型,如何判断字符串类型,bigInt 的使用场景,[] == ![]为什么?

  2. 深拷贝,浅拷贝,二者区别,栈堆概念,实现深拷贝

  3. js 事件循环机制。

  4. 数组删除奇数位,

  5. promise.then 实现,

  6. react 生命周期

  7. react 中 purcomponent 与 component 区别,

  8. react hooks 理解

二面

  1. 如何把真实 dom 转变为虚拟 dom,代码实现一下。

  2. 错误监控的实现,以及错误监控怎么用,日志如何分等级。

  3. vue3 与 vue2 的对比

  4. 大家都知道 vue 对数组的方法做了重写的操作(有人不知道吗),那么如何实现对 vue2 中对数组操作的 push()方法,

  5. 实现一个 peromisfsy 函数(promisfsy(fs.readfile)(path),)promisfsy(fs.readfile)(path,content )).then(),

追问如果是同步读取呢,

  1. node 如何处理异步 eventloop,

  2. react 有状态组件与无状态组件区别,为什么要用,优缺点,

  3. nginx 缓存策略,强缓存与弱缓存区别,二者的使用场景

# 脉脉

框架

简述 vue 的基本原理

vue 的生命周期

vue 与 react 的不同

vue 父子通信的方式

vuex 的原理及理解

vue v-model 如何实现的,语法糖实际是什么

react 生命周期

react context 的理解

redux 的原理

react-redux 的原理

如何避免 render 的触发

说一下 react vnode 的 diff 算法

vnode 的引入与直接操作原生 dom 相比,哪一个相率更高,为什么

基础知识

对缓存的理解,对 http2 的理解,对 https 的理解

对原型链的理解,画一个经典的原型连接图///////////

对 es6 了解多少

箭头函数与正常函数有哪些区别?

class 的实现 用原型写一个继承

function

ajax axios fetch 的区别

如何用 promise 封装一个 ajax

项目中的难点和亮点

# 滴滴

1.webpack 离线缓存静态资源如何做用 localStore

2.算法[1,0,2,3,4,-1,-3] s 输出任意俩个值和为 0 的下标 O(n) 3.css 垂直居中 4.webpack 优化 5.求输出什么

function a(obj){
    obj.a = 2;
    obj = {a:3}
    return obj
}
const obj={a:1}
a(obj)
console.log(obj)
1
2
3
4
5
6
7
8

6.实现函数

d1,,,
d2,,,
d3,,,

把上边的字符串输出1,2,3的和  //6
1
2
3
4
5

7.vue 里边直接 arr[0]是否会让页面渲染 就是想问 Object.defineProperty

8.promise.prototype.all 的实现 9.promise 链式调用如何实现

10.bigInt 的理解

11.null 是不是一个对象 12.原型链画一下 13.gitlab 分支管理,线上如果发生 bug 怎么解决? 14.设计表结构,写 sql 查找语句 15.堆栈的理解 16.js 的循环机制 17.重绘重排

18.cdn 加载的 vuejs 的版本,。。。。我也是醉了,为啥要用 cdn

# 自如

自如:

  1. 左右固定,中间自适应的三列布局
  2. xss 与 CSRF 原理,以及如何防御
  3. 提升页面性能的方式有哪些,首页加载优化
  4. DOM 事件捕获过程
  5. 请写出 HTTP 报文的组成部分
  6. 301,302,304 的区别
  7. 请实现$on,$emit
  8. 手写 bind
  9. 手写 sleep 函数
  10. 介绍一下 node 核心模块(主要是 stream)
  11. webpack 与 gulp 的区别(源码角度)
  12. chunk,bound,modle 的
  13. 原生 js 设置元素高度(我说了俩种一种是 style,setcompu)
  14. vue 的$nextTick 原理
  15. vue-router 的原理
  16. node 如何做错误监控(运行时与其他)如何生成日志,日志等级
  17. 浏览器与 node 环境的 event-loop;
  18. vue 如何收集依赖的;
  19. 原生 js 实现自定义事件;