博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里外包电话面试
阅读量:7042 次
发布时间:2019-06-28

本文共 2307 字,大约阅读时间需要 7 分钟。

hr: 你好,我是阿里的,说说你现在工作内容吧。

我: 我现在在做公司后台系统,用vue重构,同时做小程序。

hr: 你在做的过程中,遇到的难题,克服的困难。

我: 小程序商品详情页面有个弹框,我负责实现他的功能,让他在同时满足3个条件的情况下弹出,(这不是我的店铺,我第一次进到商品详情页面,我有店铺可以回去)才弹出该弹框。

hr: 嗯嗯,还有呢?

我: 公司业务做得少。(本来想说上家公司的那个webpack分批打包业务的。有点捉急mmp)说个自己的项目吧,最近有做一个围住神经猫的小游戏,遇到的困难自然是A*算法,路径问题,……%¥&……

hr: 这个用库就可以了,网络上一堆,我想问的是,你做的东西对公司有什么帮助,你能不能说一些和公司业务相关的东西。这个问题就算了,你说一下,现在有一个数组,用一个函数就可以得到他的所有名字

我: arr.filter(e=>e.name==='peng').map(e=>e.name); O(1)复杂度吧。
hr: 用一个函数就做到它。
我: 不会,只能用两个。答案如下。。。

var arr = [	{name:'xiaoming',id:"123"},	{name:'xiaoming',id:"456"},	{name:'xiaoming',id:"789"},	{name:'xiaohua',id:"101112"},	{name:'xiaowang',id:"131415"},	{name:'xiaohong',id:"161718"}];res = arr.filter(e=>e.name==='xiaoming').reduce((all,e)=>{	return {name: 'xiaoming',id:[...all.id , e.id]}},{name:'xiaoming',id:[]})console.log(res);复制代码

hr: 看过你写的 这个issue,35条网络优化建议,你有哪些在公司这里用过。

我: 三级域名 api.vmei.com, static.vmei.com这种,静态资源设置缓存,同时静态资源不携带cookie,可以加速访问静态资源。开启http2,加速网络资源。

hr: 说一下http2与http1的区别.

我: http2采用二进制数据输送,比http1快很多,可以实现资源传输的优先级顺序,实现先加载css,再加载js,http2可以开启google那个加速模块。

1.http2开启了线路复用, 即可以共享连接,他是之前Google加速模块SPDY的升级版,2.采用二进制传输,有更强健壮性。3.header的压缩,4.服务端推送。5.有请求优先级别选择。

hr: 还有呢?你为什么开http2?

我: 因为看到京东也开了http2,所以我也开。

hr:那你说一下http2如何开启吧,

我:先开https,要有一个证书,用的let encrypt.

hr: https和http区别,以及你为什么要用https

我: 中间套一层tcl或者ssl加密层,对数据加密,https更加安全。其实翻墙也是同样的原理,中间套一层ssl加密,让防火墙无法识别数据,从而达到防火墙无法过滤信息的目的。

这个真说错了,shadowsock是基于socket5协议来做的,只不过搬瓦工刚好占用了443端口而让你误以为是https.

hr: 大概说说react的生命周期。以及ajax函数放在生命周期那个阶段最好。

我: 大概分为三部分 生成组件,挂在组件,销毁组件,以及一些componentwillReciveProp,shouldcomponentupdate之类的吧。ajax请求自然是放在created里面最好,放在组件生成的阶段。

hr: 你说的是vue吧,算了setState也懒得问你了。

?尴尬的一b,其实是应该放在componentDidMount,因为真实Dom还没挂载,无法实现ajax请求,太久没做,忘光了。

hr: 如何防止this作用域紊乱。

我: 箭头函数内部没有this,所以多用箭头函数,bind也可以改变this指向。

hr: 说说webpack如何进行性能优化吧,在原有脚手架基础上。

我: 我觉得vue-cli已经做的非常好了,没有优化必要。我用的webpack3-4,从我接触到webpack的时候就已经 是webpack3了,

hr: 这个肯定是有的,最优配置都是自己做出来的。像我们公司从前的webpack打包要6分钟,现在我们优化到只要 1分钟,我们从1-4一直在做优化,推荐的wepback打包插件,极限提速(10秒jsp编译过程我都嫌久了,真的没做过复杂项目呢。)

hr: 你说说vue-cli脚手架内部实现原理吧,

我: 首先自然是 merge(webpack.base + prod + dev)(居然不问我webpack/babel/vscode插件怎么写。外包还没到这个级别吧。又也许是知道我不会,懒得问直接跳过)

hr: 项目测试用的什么

我: eslint+vscode

hr: 如何禁止不符合eslint规范的代码被提交,

我: 当然是用自定义的命令咯,内部调用node,然后调用eslint对代码进行检查,错误数量>0则不执行git add .的代码咯,

hr: 你还有什么想知道的吗?

我: 当然是关于面试评价咯。

嗯嗯好的。有时候,身边的负责带我的leader不会教我太多东西,而从没见过的面试官却能教我很东西,非常感谢。

最后

欢迎评论

转载地址:http://xaxal.baihongyu.com/

你可能感兴趣的文章
sshd问题:A protocol error occurred. Change of username or service not allowed
查看>>
jQuery开发者眼中的AngularJS
查看>>
【DAY9】 关于多线程熊吃蜜Demo1的作业实验
查看>>
Python实现多属性排序
查看>>
nginx 访问日志分析
查看>>
RabbitMQ之消息确认机制(事务+Confirm)
查看>>
给出一个数组,计算数组中少了哪个数据的实现
查看>>
USB-232卡 配置
查看>>
C#窗体程序皮肤设置
查看>>
T-SQL.字符串函数
查看>>
mysql慢查询
查看>>
offices文件打开乱码问题如何处理
查看>>
抓屏程序
查看>>
many-to-many出现的问题
查看>>
第5章 配置邮箱服务
查看>>
node.js的一个简单框架
查看>>
PPT如何保存还原已剪裁图片的原始版本
查看>>
lnmp一键安装之-php
查看>>
ajax 同步和异步的区别
查看>>
linux shell单引号、双引号及无引号区别(考试题答案系列)--看到这篇文章之后我豁然开朗...
查看>>