# 大佬的面经
# 快手
- 请写下以下代码执行结果:
var a = { x: 1 };
var b = a;
a.x = a = { n: 1 };
console.log(a);
console.log(b);
2
3
4
5
- {n:1}
- {x:{n:1}
- 请写出以下代码执行结果
Function.prototype.a = () => {
alert(1);
};
Object.prototype.b = () => {
alert(2);
};
function A() {}
const a = new A();
a.a();
a.b();
2
3
4
5
6
7
8
9
10
- a.a is not a function
- alert(2)
- 请写出以下代码执行结果
let a = 0;
console.log(a);
console.log(b);
let b = 0;
console.log(c);
function c() {}
2
3
4
5
6
- 0
- Uncaught ReferenceError: Cannot access 'b' before initialization
- 请写出以下代码执行结果
var x = 10;
function a(y) {
var x = 20;
return b(y);
}
function b(y) {
return x + y;
}
a(20);
2
3
4
5
6
7
8
9
- 30(作用域链)
- 请写出以下代码执行结果
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);
});
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- 156378924
- 请写出以下代码执行结果
[1, 2, 3, 4, 5].map(parseInt);
- [1, NaN, NaN, NaN, NaN]
- 请写出以下代码执行结果
typeof typeof typeof [];
- string
- 以下 css 最后是什么颜色
<style>
div{color:red}
#title{color:yellow}
div.title{color:blue}
</style>
<div class="title" id="title">abc</div>
2
3
4
5
6
- 黄色
什么是死锁
实现以下代码
function add() {}
function one() {}
function two() {}
console.log(add(one(two()))); //3
console.log(add(two(one()))); //3
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
2
3
4
5
6
7
8
9
10
11
12
13
- 请实现一个 cacheRequest 方法,保证发出多次同一个 ajax 请求时都能拿到数据,而实际上只发出一次请求。
- 实现一个函数柯里化
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]);
};
};
};
2
3
4
5
6
7
8
9
10
11
- 经典爬楼梯问题。
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];
}
2
3
4
5
6
7
8
9
10
11
12
# 高德
.字符串类型,如何判断字符串类型,bigInt 的使用场景,[] == ![]为什么?
深拷贝,浅拷贝,二者区别,栈堆概念,实现深拷贝
js 事件循环机制。
数组删除奇数位,
promise.then 实现,
react 生命周期
react 中 purcomponent 与 component 区别,
react hooks 理解
二面
如何把真实 dom 转变为虚拟 dom,代码实现一下。
错误监控的实现,以及错误监控怎么用,日志如何分等级。
vue3 与 vue2 的对比
大家都知道 vue 对数组的方法做了重写的操作(有人不知道吗),那么如何实现对 vue2 中对数组操作的 push()方法,
实现一个 peromisfsy 函数(promisfsy(fs.readfile)(path),)promisfsy(fs.readfile)(path,content )).then(),
追问如果是同步读取呢,
node 如何处理异步 eventloop,
react 有状态组件与无状态组件区别,为什么要用,优缺点,
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)
2
3
4
5
6
7
8
6.实现函数
d1,,,
d2,,,
d3,,,
把上边的字符串输出1,2,3的和 //6
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
# 自如
自如:
- 左右固定,中间自适应的三列布局
- xss 与 CSRF 原理,以及如何防御
- 提升页面性能的方式有哪些,首页加载优化
- DOM 事件捕获过程
- 请写出 HTTP 报文的组成部分
- 301,302,304 的区别
- 请实现$on,$emit
- 手写 bind
- 手写 sleep 函数
- 介绍一下 node 核心模块(主要是 stream)
- webpack 与 gulp 的区别(源码角度)
- chunk,bound,modle 的
- 原生 js 设置元素高度(我说了俩种一种是 style,setcompu)
- vue 的$nextTick 原理
- vue-router 的原理
- node 如何做错误监控(运行时与其他)如何生成日志,日志等级
- 浏览器与 node 环境的 event-loop;
- vue 如何收集依赖的;
- 原生 js 实现自定义事件;
← 手写代码无敌秘籍(二) 面试总结 →