滴滴网约车前端实习一二面
- 面试官自我介绍了下
- 自我介绍
- 项目难点
- 小程序分包
{
"pages":[ 主包
"pages/index",
"pages/logs"
],
"subpackages": [ 分包
{
"root": "packageA",
"pages": [
"pages/cat", 相对于root分包的路径
"pages/dog"
]
}, {
"root": "packageB",
"name": "pack2",
"pages": [
"pages/apple",
"pages/banana"
]
},
{
root:分包根目录
name:分包别名,分包预下载时可以使用
pages:分包页面路径数组,相对与分包根目录
independent:true|false分包是否是独立分包
}
]
}
- 小程序分包最大多少兆?是主包不能超过2M还是那些分包一起不能超过2M?
所有的分包最大20M,主包不能超过2M
- 小程序的优势
1. 功能齐全,可以满足现在APP的基本的要求。2. 不占内存,在微信中点开即用,数据保存在云端3. 推广成本低4. 没有广告
- 小程序相对于移动端web为什么更安全?
- 小程序能否操作DOM?
不能,逻辑层和webView渲染层的代码完全分离,即两者线程独立,JavaScriptCore没有window、document等对象,自然不能操作dom。补充:那渲染层和逻辑层怎么实现响应式的呢?1. 在渲染层中,宿主环境环境把wxml装换为js对象;2. 在逻辑层发生数据变更时,我们需要通过宿主环境提供的setData方法,把数据从逻辑层传到渲染层;3. 再通过对比差异,把差异应用到原来的dom树,渲染出正确的UI界面。
- Vue3.0相对于Vue2.0的优势
- 说下composition API
- http2.0做出哪些改进?
- http2相对于http1在报文中有哪些新增了?
- 说下Steam(流)和帧的关系
帧是流中的数据单位。一个数据报的header 帧可以分成多个 header 帧,data 帧可以分成多个data 帧。
- 浏览器的事件循环和node事件循环
- 时间循环的题
fuction fn() { fn() } fn() // 上面说下为什么不行 function fn() { setTimeout(() => { fn(); },0) } fn(); console.log(1); // 能打印吗?为什么能打印?
- 手写一个快速排序
function quickSort(arr){ if(arr.length <= 1) return arr const mid = Math.floor((arr.length + 1) /2) let pivo = arr.splice(mid,1) let left = [],right = [] for(let i = 0;i < arr.length;i++) { if(arr[i] < pivo) { left.push(arr[i]) } else { right.push(arr[i]) } } return quickSort(left).concat(pivo,quickSort(right)) } // 最好情况O(N) 最坏情况O(N^2) 平均时间复杂度O(NlogN)先写这么多吧之后再补~
补:
6月1号约的二面,之后面试官说我技术没问题,没hc了呜呜
都是问的一些小程序相关的问题
#滴滴实习##实习##面经#