美团点评移动端(前端)提前批一面面经
介绍部门概况,自我介绍
JS
JS有哪些对象类型
JS垃圾回收机制
JS有几种继承方式
TS有哪些特点
Vue
Vuex是什么
v-for和v-if的含义
Vue如何实现双向绑定
操作系统
进程之间有哪些通信方式:
答了消息队列 信号量 信号 共享内存 套接字 忘了管道、具名管道
进程的调度策略:
答了 先到先服务 优先级 时间片轮转,承认自己是背的,没学过操作系统
还有 短作业优先 高响应比优先 多级队列 多级反馈队列
你知道I/O吗?
不知道
计算机网络
HTTP与HTTPS 区别
HTTP为什么要经过 TIME-WAIT
TCP拥塞处理
跨域有哪些方法
数据库
数据库用了什么数据结构:
B+ 树,但背的不太好,没说出来B+树通过链指针,方便进行范围查询
事务隔离级别有哪些:
承认数据库没背好,只说出来读提交
实际有读未提交 读提交 可重复读 串行化
手撕算法
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
示例 :

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22 输出:[[5,4,11,2],[5,8,4,5]]
选择DFS算法保存路径
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {number} sum
* @return {number[][]}
*/
var pathSum = function(root, sum) {
let res = [];
let path = [];
function dfs(root, sum) {
if (!root) {
return;
}
sum -= root.val;
path.push(root.val);
if (!root.left && !root.right) {
if (sum == 0) res.push([...path]);
}
if (root.left) dfs(root.left, sum);
if (root.right) dfs(root.right, sum);
path.pop();
}
dfs(root, sum);
return res;
}; 