关于前端:两年经验前端面试分享一

2次阅读

共计 1565 个字符,预计需要花费 4 分钟才能阅读完成。

先简略的介绍一下本人,18 年毕业至今正式工作两年多了,毕业后就始终在当初这家公司工作。小公司,人不多,我是目前项目组的惟一前端。我的项目前端局部次要包含:两个 App(react-native)、两个网站(一个 Vue 单页,一个 Vue Ssr 服务端渲染网站)、两个 node(一个用于第一个网站的套壳,一个用于第二个网站的 ssr)。

最近因为公司呈现了一些变故,让我不得不提前开始思考换工作的打算,于是陆陆续续的投递了一波简历,想看看有没有适合的机会。这篇文章也想和大家分享一下找工作的全通过。周四、周五的下午把简历公开了,被动分割或者某 boss 上找上门的大略有 30-40 家公司吧,过半是外包,而后还有大部分是要了简历就没下文了,也有一些简历通过筛选的陆陆续续的约了面试。而后在昨晚 9 点左右的工夫,忽然收到了预约外的一家公司的电话面试,有点蒙。

电话一面


第一个网站的 node 套壳具体说说

我的项目一开时的时候没有思考到后续 SEO 方面的需要,只是搭了一个简略的 Vue 单页,Vue 单页很难依据不同的 url 做 SEO。咱们遇到的问题次要是,三方分享(facebook、whatsapp 等)的时候,爬虫会抓取页面的元数据(meta 标签)来提前告知用户你要分享的链接内容。因为爬虫的抓取是在页面 js 加载前,所以通过网站的 js 代码来批改元数据是行不通的。咱们的解决方案就是,加一层 node,node 先获取到网站原本要渲染的 html,而后增加批改咱们想要的元数据,再返回给用户。这样一来爬虫获取到的就是咱们批改过的 html,毛病是用户关上看到内容的速度会变慢,因为两头多了一层 node。第二个站点咱们也是汲取了教训,间接用了更成熟的 vue ssr 服务端渲染。次要区别是,node 不必依据 url 去获取渲染后的 html,当初 html 是间接在 node 这边生成的。


浏览器输出网址后的渲染过程

我过后的答复是:解析 html 生成 dom tree,解析 style 生成 css tree,而后二者联合,绘制出具体的页面。
这个问题相干的文章很多,网上一搜一大堆,具体答复还是因人而异吧。


做过哪些网站的前端优化

图片懒加载、根底数据(像多语言)获取后存储到本地、ssr 服务端渲染的首屏速度会更快
当初想想还能够答复缩小申请数、图片预加载

图片懒加载是怎么实现的

依据图片的地位和以后视图的地位做判断,先加载一个含糊图(图片裁剪),等图片呈现在预期地位的时候,比方两屏内,再加载一个清晰图。获取节点的地位能够用原生的 getBoundingClientRect 办法。

根底数据存在本地后,怎么更新

存的时候会同时存一个工夫戳,下次关上依据工夫戳获取差别。

ssr 服务端渲染的首屏为什么会更快

因为只须要加载首屏的资源。一般单页要加载整个网站的资源。


简历里有些参加公司 app 脚手架的设计,次要有哪些内容

react-native + dva, 加上页面,模型,组件的最佳实际,申请标准,代码标准,常用工具办法,组件库 等


dva 数据流

这边贴一下标准答案,引自 dva 官网文档

数据的扭转产生通常是通过用户交互行为或者浏览器行为(如路由跳转等)触发的,当此类行为会扭转数据的时候能够通过 dispatch 发动一个 action,如果是同步行为会间接通过 Reducers 扭转 State,如果是异步行为(副作用)会先触发 Effects 而后流向 Reducers 最终扭转 State,所以在 dva 中,数据流向十分清晰扼要,并且思路根本跟开源社区保持一致(也是来自于开源社区)。


连两张表的 sql 怎么写

可能是看到我实习期有做过服务端才问的吧,间接答了不会,两年多没用真没底。原本认为这段经验会是加分项,然而如同并不是。
答案应该是用 join


大抵就这么多,只是一次简略的电话面试,粗略的看一下你是否适合。后续的面试经验,会再写文章分享给大家,一起加油!
正文完
 0