高德
- 上中下,中自适应的布局
div字体什么颜色
.red{color: red}
.blue{color: blue}
<div class="blue red">
- 现象
-
普通函数递归调用 ==> 栈溢出
-
setTimeout递归调用 ==> 正常 -
promise.then递归调用 ==> 页面卡死
- 菲波那切数列
- 递归
- 时间复杂度
- 时间复杂度优化:使用map保存已经计算过的位置,优化时间复杂度
// 使用map保存已经计算过的位置,优化时间复杂度
let map = [0, 1, 1]
function get(n) {
if(map[n] !== undefined) {
return map[n]
}
if(n === 1 || n === 2) {
return 1
}
let res = get(n - 1) + get(n - 2)
map[n] = res
return res
}
2. 非递归
+ 空间复杂度
+ 空间复杂度优化: **只需要维护两个变量即可,不需要维护整个列表**
function get1(n) {
// 只需要维护两个变量即可,不需要维护整个列表
let n1 = 1
let n2 = 1
if(n === 1 || n === 2) {
return 1
}
for (let i = 3; i <= n; i++) {
let temp = n1 + n2
n1 = n2
n2 = temp
}
return n2
}
- 模拟异步请求
- lazyman
- 选择排序,冒泡排序
- vue服务端渲染流程
- webpack常用plugin
作业帮
- 移动端适配方案:媒体查询、百分比布局、
rem布局以及原理 - 错误收集机制原理:
window.onerrorxhr.onerror
神策
- 删除数组的某一位,不改变原数组(不使用splice)
- 求乘积为n的数组
8: [2,2,2,2]; 12:[2,2,3]
好未来
- 大数据在前端流畅展示
html渲染过程是一部分一部分渲染的还是一次性渲染的less编译成css的原理- 判断数据类型的方法
typeOf能判断出一个变量的类型,但是只能判断出number,string,function,boolean,undefined和其他对象类型返回结果都为object.instanceof能判断出一个对象是否是另一个类的实例。Object.prototype.toString.call能判断出所有变量的类型,返回值为[Object ***]。
滴滴
- 实现
reduce函数 - 手写
promise - 实现
flatten(arr, deep) proxy相对于object.definePropety的好处Object.defineProperty拦截的是对象的属性,会改变原对象。proxy是拦截整个对象,通过new生成一个新对象,不会改变原对象。proxy的拦截方式,除了上面的get 和set,还有 11 种。选择的方式很多Proxy,也可以监听一些Object.defineProperty监听不到的操作,比如监听数组,监听对象属性的新增,删除等。
substring(start,end)
substr(start,length)
slice(start, end)
splice(start,length,items)
贝壳
- vue数据监听原理 介绍observe dep wather
- 介绍react context,useContext
- 平面中有十万个点,找出在某个圆中的所有点
- 把十万个点根据xy一定的范围按顺序存储为二维矩阵,提高查找效率
- 判断某个点在圆内:点和圆心的距离小于半径
头条
target和currentTarget的区别target:触发事件的节点currentTarget:事件监听、绑定的节点
百度
- 两个大数相加
- 两个tab页如何交互
常见问题
- vue react对比
- vue react在新项目中如何选型
- 介绍一下你们的项目架构
- 你在工作中做过哪些有亮点的事情
- 你在工作中遇到过什么困难,如何解决的
- 为什么换工作
- 你平时学习的通径
- 需求驱动
- 问题驱动,遇到了问题一定要刨根问底,找到根源,不要打补丁
- 自学
- 最近看过那些书
- 深入理解es6
- 小灰的算法之旅
- 财富自由之路: 注意力、元认知、注重成长、活在未来
- refactoring UI
- 以后的职业规划
- 加深需求理解
- 拓宽知识广度
- 及时了解最新技术
- 对下一家公司的期望
- 大牛带
- 项目组氛围
- 公司平台
- 成长空间