在一个雨蒙蒙的清晨,百般无聊的闲逛中,突然回忆起了我这一生中的第一次面试经历。虽然结果是以失败而告终,但此时此刻的回忆,带给我的并不是失败而是成长。
作为一名实习生,我深刻的感受到在校园与社会夹缝中生活的不易。也十分的幸运,我还有足够的青春与活力驱动着我去学习,让我的未来不再遥不可及; 让我能在社会的这份土壤里扎根成长。
这一次的面试地点是成都腾讯大厦,对于我这类常在农村走,从未上过街的学生党来讲,我真的被眼前的惊呆了 (没见过世面)。门口的迎宾,高大帅气;前台的女士,仪态端庄;一旁的植物,生机勃勃;楼道的电梯,金碧辉煌;我站的地板,闪闪发光。我内心中油然而生了一份自豪感,如果以后我能在这儿上班。那简直是哇!塞!
一瞬间我就到达了指定楼层,这办公环境真的是哇塞!哇塞!超级 nice!我艹,这前台小姐姐这么漂亮,我艹,这 HR 小姐姐好靓啊!比学校的妹子还乖!(我翻不到什么词汇来形容了)。
很快我拿到了一份笔试题;
1. 请描述下状态码 304?(5 分)
表示浏览器端有缓存,并且服务端未更新,不用向服务器端请求资源。
2. 写出 5 种 css 隐藏元素的办法 (10 分)
1.opacity: 0;
2.visibility: hidden;
3.display: none;
4.position: absolute;
top: -9999px;
left: -9999px;
5.clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
我只写出来了 4 种。第 5 种确实没遇到过,也没有想到过。
3.cookies 与 session 有什么区别?(5 分)
由于 http 请求是无状态的,需要 cookie 来做身份验证
1.cookies 由服务端创建,发送给浏览器端,当用户发出请求后,带上 cookie 发送给服务端做验证。
2. 来回传递过程中,占用带宽,消耗网络资源, 并且容易被中间人获取或浏览器端用户篡改十分不安全
3.cookies 大小只有 4k
1.session 主要存在于服务端,不会被发送到浏览器所以很安全
2. 如果没有设置过期时间,在会话结束后 session 会自动消失
3.session 主要用于服务端保存请求信息的机制
答得不够全面,所以请小伙伴们自行查阅资料
4. 实现一个方法,找出一个数组中重复的元素 (10 分)
举例
arr = [1,2,3,4,1,1,2,4,4]
输出 [1,2,4]
Array.prototype.repeNum = function(){
let new_arr = this.sort(); // 先排序
let res = [] ;
for(let i = 0 ; i < new_arr.length ; i++){
if(new_arr[i] == new_arr[i+1] && // 判断是否重复, 是否已经放入容器
new_arr[i] !=new_arr[i-1]){
res.push(new_arr[i]);
}
}
return res
}
因为题目上说的要实现一个方法,所以我考虑到是给 array 原型加一个方法
5. 将这段英文 this is a pen 首字母大写 (10 分)
法一:
function bigLetter(str){
let newArr = str.split(” “).map((v,i)=>{
return v.slice(0,1).toUpperCase() + v.slice(1)
})
return newArr.join(” “)
}
法二:
function bigLetter(str){
bigStr = str.toLowerCase().replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);
});
return bigStr;
}
由于这道面试题,曾经遇见过,所以给出了两种方法。能秀的时候绝对不马虎
6. 请写出你常用的 10 个 linux 命令并说明作用 (20 分)
7. 请写出你常用的 5 个 git 命令并说明作用 (15 分)
最后两题因为时间比较久远了,有点忘却了。但记得考察的是什么
8. 关于 Promise 的题 (10 分)
我印象中有,然后输出什么 Promise.then()Promise.resolve(1) Promise.catch()
9.react 向子组件传状态 (15 分)
constructor(){
this.state = {
name:’xxx’
}
}
<Person data={this.state.name} />
下面是 Person 组件
<div data={this.props.data} />
还有一个空我记不得了,反正一空 5 分
然后交给了 HR,过了一会儿 HR: 今天先回去,后面会在 3 天内告诉你笔试结果。我:多少分才算过呢?HR:60 分
我一丝不舍的被送到了门口,唉,好想在这儿多待一会儿,哪怕是让我在这儿干站到我都愿意阿!唉!回去了
临近 5:30 时分,我接到了电话,说我笔试通过了,请问明天下午 2 点有没时间来面试?对于我们这类无业青年来说,除了时间,我一无所有。
第二天
相同的时间相同的地方,我却走错了地方,原来成都腾讯大厦有 AB 两栋。马叔叔,你真有钱
又是那高大帅气的迎宾;仪态端庄的前台;生机勃勃的植物;金碧辉煌的电梯;闪闪发光的地板,这个地板简直比我脸还干净。又是那好看到爆的前台小姐姐,又是那漂亮到爆的 hr。在如此炎热的 8 月,我一口就喝下了前台小姐姐送来的水,但是我的内心还是十分的紧张,丝毫没有缓解的迹象。我的腿情不自禁地抖起来,我的手不停使唤地去阻止腿的抖动,然后他们一起抖了起来,
随后,HR 与面试官一同走了进来,我内心暗想这是什么情况?难道 HR 面和技术面同时进行?HR 拨通了一个电话,对方应该是另一个部门的负责人,然后 HR 说明到有两个部门都需要前端实习生,所以面试同时进行。我暗自高兴那我的胜算更大啦!我的紧张情绪终于得到了一丝缓解。
面试正式开始(由于题目的答案,并不固定所以我就不作答了,而且我个人认为当时也回答的相当不好,所以被 pass 掉了)面试官:1. 先做个自我介绍吧!
2. 看你项目你用过 react,那你来说说 react 与 vuejs 的区别
3. 你能说说 react 的虚拟 DOM 吗?
4. 你这个项目中你负责开发了哪些模块?能说说你主要的开发流程吗?
5. 项目中有没有用过 Eslint
6. 来讲讲 http?
7.http 请求头有哪些属性
8. 说说 GET 与 POST 的区别
9. 知道浏览器缓存吗?
10. 图片懒加载能手写一下吗?
11. 函数节流与防抖
12. 讲讲怎么用 Promise
13.linux 如何修改文件权限
14. 有了解过 webpack 吗?能说说吗?
15.loader 与 plugin 的区别?
最后一个问题,你有什么想问我的吗?
我在网上看到加速乐是成都团队开发的,加速乐主要有什么用?用了什么技术栈
面试官:这个产品我可能讲的话,会讲很久。所以你还有没有什么其他想问的?
我:请问面试官你贵姓?(虽然带了工牌,我还是没能看清楚) 面试官:XX
面试官:你稍等一下
一会儿 HR 告诉我,你先回去,后面我们会给你答复。
快到门口的时候,我回头问,是不是凉凉了?
HR:技术部门还在商量,暂时还不清楚。
我又依依不舍的,哪怕是让我多站会儿我也愿意啊。
在回家的路上,我没有骑摩拜单车,而是选择一个人在偌大的城市街头游走。我不断地思索刚刚面试过程重中有哪些回答不好的地方。我一直在等待那个 5 点多会打过来的电话,结果 6 点了,我的手机安静的像个睡着的婴儿。我还怀着一丝侥幸猜想,可能还在加班哦。
直到夜晚的降临,我也的懂得了这份弦外知音。这次的失利,虽然对我的打击很大但是再大也浇不灭我执着追梦热爱前端的热情,也阻挡不了我更加努力的步伐。
收拾好我失落的情绪,到楼下点了份最喜欢吃的鱼香肉丝炒饭,为这次面试旅程画上一个句号。
几个月过去了
现在的我,回想当时,我不禁的发笑。人总是在不断成长,就算跌倒了,拍拍身上的尘土,还是会向前奔跑。
感谢记忆,我将永远记住你带给我的一切,你留在我❤间无论是忧伤还是快乐,现在或将来对我来说已是甜蜜,为此我要永远怀念你,感谢你❤