Momenta面试记录
一面
1、自我介绍
2、考察代码熟练度和对框架的掌握度,手写一个vue2/3的简易计算器
二面
1、自我介绍
2、项目问题
2.1 对多源互联网数据的感知包括哪些方面?
灾害感知:挖掘带地理位置信息的文本内容的时空变化趋势,挖掘灾害的演化过程和发展趋势,揭示主题演化过程和灾情发展状况和灾情分布范围。
舆情监测:利用LDA模型和情感分析方法挖掘企业的评论数据,分析用户的情感倾向和影响因素,可以帮助企业调整服务质量。
场所认知:获取旅游相关的社交媒体数据,分析游客的情绪特征、满意程度,从而感知旅游场所的形象和用户满意度。
2.2采用了什么三维技术实现可视化功能?
采用cesiumjs实现
2.3大量三维数据量渲染导致页面卡顿怎么解决?
采用cesium中的clusterEntity,通过对点数据进行聚类,可以显著减少屏幕上同时渲染的点的数量
2.4cesium中entity和primitive的优劣?
entity:使用简单,通过简单地修改属性来更新显示,支持时间状态属性,适合动态场景。但是性能较低,在大量数据渲染时不如primitive高效,灵活性较差,限制了一些底层优化和自定义设置。
primitive:更接近底层,少了很多封装,性能更高,提高了更底层地控制,进行更多自定义优化。但是复杂度高,且需要手动管理对象地创建、更新和渲染。
2.5地图坐标,常见的地图产品的地理坐标系,如何进行坐标转换?
大地坐标系-wgs84(cesium、mapbox),火星坐标系(腾讯、高德),百度坐标系(百度)
2.6还使用过哪些GIS技术?
openlayers、mapgis
3、宽高不定时垂直水平居中
(1)flex:display:flex,justify-content:center,align-items:center
(2)grid:display:grid,place-items:center
(3)position:position:absolute,tansform:tanslate(-50%,-50%);
(4)table:父元素display:table,子元素display:table-cell,vertical-align:middle,text-align:center
4、事件循环机制
JavaScript是单线程的编程语言,因此一次只能执行一个任务,但是现代应用需要大量异步操作,事件循环机制通过不断循环检查并执行任务队列中的任务,可以使JS在处理异步操作的同时保持单线程。
首先JS会执行同步代码,将所有同步代码放在主线程上执行。
而异步任务会先被交给浏览器进行处理,当这些任务处理完成之后将对应的回调函数放入任务队列中。
消息队列中的每个任务为宏任务,每个宏任务中都包含了一个微任务队列。每个宏任务执行完毕之后就去检查其微任务队列,执行完所有微任务之后再执行下一个宏任务。
5、宏任务和微任务有哪些?
宏任务:setimeout,setinterval,Promise,渲染事件(如解析dom,计算布局、绘制),用户交互事件(点击,滚动),网络请求完成事件
微任务:promise回调,async/await
6、强缓存和协商缓存
强缓存:是指在缓存有效期内,浏览器直接从缓存中读取资源,从而不用像服务器发送请求,可以显著减少网络请求的数量,加快网页的加载速度。
协商缓存:是指在缓存有效期过后,浏览器会向服务器发送请求,询问资源是否发送变化,如果资源没有变化,服务器就会返回304状态码,浏览器继续使用缓存资源,如果资源发生变化,服务器就会返回新的资源内容和200状态码。
7、开发时需要同时发送很多个请求,这时候有哪些因素会影响页面的性能呢?
(1)请求数量:浏览器对同一个域名的并发请求数量是有限制的,通常为6个,如果同时发送过多请求会导致一些请求被阻塞,必须等待其他请求完成后才能发送。
(2)资源大小:请求的资源大小也会影响传输时间,大文件需要更长的时间下载
(3)服务器性能:服务器的处理能力和响应速度也会影响请求的响应时间
8、反问:公司对实习生的管理机制,主要业务方向有哪些?
面试记录及复盘