# 一面
# 自我介绍
# 离职原因
# 想加入什么样的团队
# 你开发过什么组件?
# 介绍一下?
# 优化过 webpack 的性能?
# 做过什么?
# 讲一下 ts 的重载?以及为什么需要用重载?
# 组件库在迁移的过程中有什么难搞的问题?
# 做过移动端的开发吗?
# 了解移动端的设备适配问题吗?
# finally 在 IOS 8 用不了的原因是什么?
# 笔试题
# 下面这段代码有什么问题
function Father() {
this.property = true
}
Father.prototype.getFatherValue = function() {
return this.property
}
function Son() {
this.sonProperty = false
}
// 继承
Son.prototype = new Father()
Son.prototype.getSonValue = function() {
return this.soneProperty
}
var instance = new Son()
# 描述一下原型、构造函数、实例之间的关系
# 说一下 instanceof 的原理
# 怎样判断类型
# 下面代码输出什么
function F() {}
F.prototype.arr = [1]
F.prototype.b = 1
let obj1 = new F()
obj1.arr.push(2)
obj1.b = 2
let obj2 = new F()
console.log(obj2.arr, obj2.b)
# 下面代码输出什么
setTimeout(function() {
console.log(1)
}, 0)
new Promise(function (resolve) {
console.log(2)
for(var i = 0; i < 10000; i++) {
i == 9999 && resolve()
}
console.log(3)
}).then(function () {
console.log(4)
})
console.log(5)
# 地址栏输入URL到页面渲染发生了什么
# 介绍一下强缓存和协商缓存
# HTTPS 能不能做一个中间层,在中间层之间做劫持?有办法避免吗
# 在 a.com 中能发送一个 ajax 请求到 b.com 吗?
# 如何避免页面被别人的 iframe 页面嵌套
# XSS防御
# 除了 XSS 以外,还有什么安全问题
# 假设你的页面加载非常慢,你会怎么判断问题出现在哪?如果是普遍的网络问题,怎样解决?如果不是网络问题,怎么解决?
# 算法题
// a,b 2个有序数组,a的长度小于等于b
// 元素都是整数
// 存在重复元素
// 判断a是否为b的子集
// 例如:
// a: [1, 2, 3] b: [1, 2, 3, 4] 属于
// a: [1, 1, 2, 2] b: [1, 2, 3, 4] 不属于
# 三面
# 算法
# 判断题
已知一个任意的正整数数组,它满足两个条件:
- 元素个数是偶数
- 它所有元素之和为奇数
假定 A、B 两人,依次轮流从数组中取一个数,每次只能从首尾两个中选一个;拿完所有数字后,各自累加持有数字,谁的总和最大,谁胜利。
例如数组 [5, 3, 4, 5]
A 先取首部 5,剩下 [3, 4, 5]
B 再取尾部 5,剩下 [3, 4]
A 再取尾部 4,剩下 [3]
B 最后取 3
结果 A 持有 5、4,总和为 9;B 持有 5、3,总和为 8.
所以 A 胜出。
问:
假如 A、B 都非常理性,A 先手,是否必胜,为什么?
# 计算题
连续抛硬币,直到连续出现2次正面为止,期望的平均抛硬币次数是多少
# 问答题
- 操作系统的最小操作单元是什么
- 线程中是否有栈,js的事件调用栈存放在哪里
- 内存中的动态内存?虚拟内存?还是
# 四面
# SQL题
假设2018年3月到2018年8月期间的员工工资被发现少发了,现在需要你在员工表中查找出对应受到影响的员工。
# 逻辑题
- 假设你有两颗玻璃球,你需要测出在一栋高100层的楼中,在第几层丢下去玻璃球会刚好破裂,未破裂的玻璃球可以重复使用。
- 假如幼儿园有100位同学,你有一个共有5条跑道的操场,每条跑道一次能跑一位小朋友,请问如何用最少次数测出跑得最快的3位小朋友。
# 算法题
# 概念题
两个独立的线程,共同操作同一个变量 n,如果两个线程都进行相同次数的 for 循环递增,问最后 n 的值
← 字节跳动(互娱).md 平行空间.md →