滴滴网约车前端实习一二面

- 面试官自我介绍了下
- 自我介绍
- 项目难点
- 小程序分包
{
"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了呜呜
都是问的一些小程序相关的问题

#滴滴实习##实习##面经#
全部评论
为啥问这么多小程序的题,楼主简历上写了吗?
1 回复 分享
发布于 2022-04-28 16:03
楼主滴滴一面过了吗?
点赞 回复 分享
发布于 2022-04-29 16:57
楼主请问在哪投的
点赞 回复 分享
发布于 2022-05-03 14:20
lz请问现在还在实习吗,或者说之前在哪实习呀
点赞 回复 分享
发布于 2022-09-16 00:35 浙江

相关推荐

2024-12-16 21:04
快手_前端开发
这篇文章谈谈我之前实习看见的一些性能优化方案(卡住职业生涯👊🏻😭)之前在qiankun基座上做SSR&nbsp;就被问&nbsp;你为什么不先在别的角度做优化🌚(当然是为了做技术需求-没活硬整)篇幅有限啊&nbsp;主要是给出思路让大家去实践&nbsp;这么多故事&nbsp;你造出一个亮点&nbsp;大厂offer&nbsp;不就稳了1.&nbsp;是什么导致性能下降随着前端技术和架构的演进(各种库层出不穷),Web应用(shi山项目)往往会经历不断的迭代和优化,但有时由于资源积累或技术选型不当,性能却可能逐步下降。我们可以得出以下是常见的性能劣化原因:资源加载过大:应用页面可能包含了过多不必要的资源,导致页面加载的时间过长。尤其是在首屏加载时,可能会一次性加载大量的脚本、样式和图片。串行阻塞:在页面加载过程中,某些资源和数据请求可能会串行执行,比如用户认证、数据获取等,导致阻塞了其他重要资源的加载。重复加载资源:如果前端项目使用了微前端架构或多个模块化构建,常常会发生一些基础资源(如React、ReactDOM等库)被重复加载,浪费带宽和时间。2.&nbsp;关键优化措施为了将页面加载时间大幅缩短,我们采取了以下几项关键的优化措施:(1)资源优化:拆包、懒加载与缓存资源拆包:通过拆分大包,将页面中不必要的资源按需加载。例如,避免将所有页面模块一开始就加载,而是根据用户需求分批加载。通过按需加载的方式,可以大大减少初次加载的体积。共享缓存:通过使用共享CDN缓存,确保不同模块或子应用之间能共享一些公共资源(如React、ReactDOM等),避免重复加载和冗余带宽消耗。懒加载:将首屏之外的内容(如抽屉、浮动弹窗、用户提示等)延迟加载。这样可以保证首屏加载的资源最小化,用户体验得到提升。图片优化:图片通常占据了页面加载时间的很大一部分,因此,我们采用了图片的懒加载和剪裁压缩技术,减少图片文件的传输体积。(2)执行逻辑优化:避免串行阻塞优化执行流程:登录验证和数据获取等操作可能会阻塞主线程,影响页面加载速度。通过将这些操作改为异步执行,可以有效避免主线程被阻塞,提升加载速度。子应用预加载:如果项目使用了微前端架构,可以通过预加载当前页面需要的子应用资源,在页面渲染之前就将资源加载完毕,确保页面显示时不需要重复请求。(3)基础设施优化:升级协议与CDN策略升级网络协议:将HTTP/1.1协议升级为HTTP/2,HTTP/2支持多路复用,可以同时发送多个请求,减少网络延迟,提高加载效率。CDN与缓存策略:通过优化CDN配置,启用HTTP/2协议,开启强制缓存、Gzip压缩等策略,进一步减少加载时间,提升页面响应速度。3.&nbsp;性能优化效果我们要怎么去看具体优化的效果呢通常一个正规项目&nbsp;都会埋点上报FMP(First&nbsp;Meaningful&nbsp;Paint)时长尽量要能在两秒以内。fmp的时间短的话&nbsp;就意味着用户能够更快地看到页面的有效内容,从而提升了页面的可用性和流畅度。同时用户的流失率就会减少:随着页面加载速度的提升,用户的等待时间显著减少,减少了因等待过久而流失的用户。4.&nbsp;持续监控与优化策略大厂里面一般有持续的性能监控系统,并引入了以下防止性能劣化的措施:性能监控系统:通过在页面中埋点,实时监控各项性能指标(如加载时间、资源请求时长等),并定期生成报告,确保性能持续优化。资源管理规则:例如,对于大于2MB的资源文件进行拦截,确保不会发布过大的资源包,避免加载过慢。共享资源管理:强制基座应用与各个子应用共享相同的CDN资源,避免多次加载同一资源。定期优化:每次新功能上线前,都要进行性能测试,确保新版本不会影响现有的加载速度和用户体验。#现在前端的就业环境真的很差吗##牛客创作赏金赛##前端#
点赞 评论 收藏
分享
查看4道真题和解析 面试时被问的最奇葩的问题
点赞 评论 收藏
分享
评论
6
27
分享

创作者周榜

更多
牛客网
牛客企业服务