楼主非科班零基础转前端(提桶跑路.jpg
当时也不知道哪来的自信,给自己定了自学一个月上岸实习的目标
显然,这么短的时间来不及把书从头到尾看一遍,那该怎么办呢
有一天,突然在牛客发现了面经这一好东西
于是,我尝试着把近几个月面经中的高频题搜集下来
配合着GitHub上的一些学习笔记,强行把答案背下来,直接把计算机学成文科
一个月后,我收到了一家独角兽的面试邀请,开启了我的第一次被拷打经历
一段磕磕绊绊的自我介绍后
面试官:既然你只学了一个多月,我就不问框架了,问你一些基础问题吧!
我:好啊好啊(内心窃喜)
面试官:我先问些CSS吧,说一下你对BFC的理解。
我:BFC就是一个独立的容器,容器里面的元素不会影响容器外的元素,容器外的元素也不会影响容器里的元素(前几天刚好背到嘿嘿)
面试官:嗯嗯,那BFC有哪些作用呢?
我:BFC的作用不就是充当一个封闭的容器嘛
面试官:那这个容器有哪些功能呢,或者说有哪些特性?
我:功能?功能不就是为了隔离容器内外的元素…
面试官:好吧,那你说一下哪些情况会触发BFC?
我:我记得有以下几种情况,float不为none,position为absolute或fixed,overflow为visible…
面试官:等等,你确定是overflow为visible的时候触发BFC吗?
我:不…不…太确定(我意识到好像背错了)
面试官:那我问一些JS吧,你知道var和let的区别吗?
我:区别主要有以下几点:
面试官:好,来看一段代码,这里的 x
输出多少
{ x = 1; let x = 2; }
我:这应该会报错吧,因为存在暂时性死区
面试官:你确定吗?
我:确...确...定吧(难道我又理解错了吗)
面试官:好的,这是对的,我就是诈一下你。那如果改成这样呢
var x = 1; { let x = 2; }
我:应该也是暂时性死区吧,毕竟在声明 x
之前使用了
面试官:那你说一下对暂时性死区是怎么理解的,报错会报什么错?
我:暂时性死区就是在声明这个变量前不能使用,至于错误类型的话我没了解过
面试官:那如果我再改成这样,x
应该是多少呢?
{ let x = 1; var x = 2; }
我:应该是2吧,虽然let不能重复声明,但下面用的是var,所以应该是2
面试官:好吧,既然你没学过数据结构和算法,那我也不出算法题了。你试着实现一个Promise.all吧
我:磨叽半天,靠着仅存的一丝记忆,默写了如下版本的Promise.all
Promise.prototype.myAll = function (arr) { const results = []; return new Promise(function (resolve, reject) { for (const p of arr) { Promise.resolve(p).then(function (val) { results[i] = val; if (results.length === arr.length) { return resolve(results); } }, function (err) { return reject(err); }); } }); };
面试官:整体思路是对的,但第7行有个小错误,你能改一下吗?
我:可以提示一下下吗
面试官:假如最后一个Promise率先完成了,但其他的Promise还没完成,那不就触发resolve了嘛,你可以换一个判断条件
我:对哦,但我好像也不知道怎么改(毕竟背的)
第一次面试,以完败收场,我觉得面试官这辈子都没见到过这么无语的候选人
这次失败给我的最大教训是:学前端一定要有自己的理解,多动手实践,形成系统化的知识体系。
如果只是死背面试题的话,很容易经不住问。比如上文中提到的关于var和let的区别,我只是把面试题中的四点区别生搬硬套过来,并没有实践过,也不知道为什么需要有var和let这两种变量声明方式。
另外,网上的面试题答案大多存在一些问题。事后我检查了一下,我当时默写的Promise.all和我背的面试题答案几乎一样,遗憾的是我背的那个刚好是一个错误版本的Promise.all。因此,面试题只能作为检验学习成果的一个参考,而不应该是知识的来源。
什么是系统化的知识体系?简单来说就是把有关联的知识点串起来,在脑海中形成一张图谱。比如上文中提到的BFC,我们不仅需要知道BFC这个概念,还需要理解:为什么要有BFC;BFC有什么作用;它在实际工作中是怎么使用的;它的全称块级格式化上下文到底是什么意思;除了块级,还有其他的格式化上下文嘛等等都一系列问题。自此,从BFC可以引申出很多其他的知识点,比如IFC、标准文档流、清除浮动、外边距重叠等等。一旦真正理解了BFC,也就不会出现我上面回答的overflow为visible会触发BFC这种低级错误了。
以上就是我的第一次实习面试经历和一些感悟,希望能给刚入门的前端人一些帮助~
本文正在参与 【实习出道计划活动 】!欢迎一起来聊实习那些事,赢京东卡、牛币、名企联名工牌奖励吧 ~
#实习面试初体验##实习##前端##前端工程师##面经#