面试官:既然只学了一个月,那就问些基础问题吧

前言

楼主非科班零基础转前端(提桶跑路.jpg

当时也不知道哪来的自信,给自己定了自学一个月上岸实习的目标🤥

显然,这么短的时间来不及把书从头到尾看一遍,那该怎么办呢🤔

有一天,突然在牛客发现了面经这一好东西🤩

于是,我尝试着把近几个月面经中的高频题搜集下来📝

配合着GitHub上的一些学习笔记,强行把答案背下来,直接把计算机学成文科🥹

一个月后,我收到了一家独角兽的面试邀请,开启了我的第一次被拷打经历🥴

拷打现场

一段磕磕绊绊的自我介绍后

面试官:既然你只学了一个多月,我就不问框架了,问你一些基础问题吧!

我:好啊好啊(内心窃喜)😊

面试官:我先问些CSS吧,说一下你对BFC的理解。

我:BFC就是一个独立的容器,容器里面的元素不会影响容器外的元素,容器外的元素也不会影响容器里的元素(前几天刚好背到嘿嘿)😎

面试官:嗯嗯,那BFC有哪些作用呢?

我:BFC的作用不就是充当一个封闭的容器嘛😳

面试官:那这个容器有哪些功能呢,或者说有哪些特性?

我:功能?功能不就是为了隔离容器内外的元素…😦

面试官:好吧,那你说一下哪些情况会触发BFC?

我:我记得有以下几种情况,float不为none,position为absolute或fixed,overflow为visible…🤨

面试官:等等,你确定是overflow为visible的时候触发BFC吗?

我:不…不…太确定(我意识到好像背错了)😩

面试官:那我问一些JS吧,你知道var和let的区别吗?

我:区别主要有以下几点:

  1. let存在块级作用域,var不存在
  2. var可以重复声明,let不可以
  3. var存在变量提升,let不存在
  4. 如果在声明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这种低级错误了。

以上就是我的第一次实习面试经历和一些感悟,希望能给刚入门的前端人一些帮助~

本文正在参与 【实习出道计划活动 】!欢迎一起来聊实习那些事,赢京东卡、牛币、名企联名工牌奖励吧 ~

#实习面试初体验##实习##前端##前端工程师##面经#
全部评论
楼主什么专业的,这也行哈哈哈
2 回复 分享
发布于 2022-06-10 16:57
楼主跪求分享收集的面试题
1 回复 分享
发布于 2022-06-11 15:44
楼主是有点幽默在身上的!哈哈哈哈哈哈哈哈啊哈!直接把计算机学成文科太搞笑了😂😂😂😂
20 回复 分享
发布于 2022-06-10 15:41
谢谢楼主,你的面经让我受益匪浅
12 回复 分享
发布于 2022-06-10 15:38
楼主三个月直接携程实习了吗,膜大佬
点赞 回复 分享
发布于 2022-08-31 00:54 湖南
哈哈哈哈 计算机直接学成文科🤣 我大学的时候也是,我是学软件工程的,但是不会写代码,考试全靠背🤣
8 回复 分享
发布于 2022-06-10 18:01
哎我连背都能力都没有
3 回复 分享
发布于 2022-06-11 18:45
现在学多久了
点赞 回复 分享
发布于 2022-06-10 18:17
点赞 回复 分享
发布于 2022-06-11 03:58
好文码了
点赞 回复 分享
发布于 2022-06-11 09:15
你的这个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);             });         }     }); };
点赞 回复 分享
发布于 2022-06-13 17:46
私我谢谢你啦
点赞 回复 分享
发布于 2022-06-14 01:02
我靠,我这都干了这么多年的这怎么感觉我都不知道呢?不过你这promise加个计数应该就可以了
点赞 回复 分享
发布于 2022-06-14 11:03
自学前端一个月三件套都没学完😭
点赞 回复 分享
发布于 2022-06-21 15:50
一个月就上了啊😂
点赞 回复 分享
发布于 2022-07-07 18:22
可以试一试荣耀,招完即止,速度。荣耀2023届校园招聘现已正式启动,内推码:yuhvad 网址https://career.hihonor.com/SU60eea919bef57c1023f6fe78/pb/school.html
点赞 回复 分享
发布于 2022-07-27 11:15
楼主现在工作了吗
点赞 回复 分享
发布于 2022-08-03 10:20
牛啊,我都不会😅
点赞 回复 分享
发布于 2022-09-02 03:04 湖北
跪求楼主收集的面试题
点赞 回复 分享
发布于 2022-09-26 22:18 广东

相关推荐

hanliu:1. 排版与格式问题字体与对齐问题:标题和内容的字体大小差异不够明显,无法迅速吸引目光。某些文字看起来有些拥挤(比如校园经历中的“班委成员”部分)。2. 内容逻辑性模块顺序问题:实习经历放在较靠后的位置,实际上这部分内容对应聘来说更重要,建议提前突出。细节表述不够突出:比如教育背景部分的专业课程仅仅列出名字,没有说明自己在这些课程中表现如何或者掌握了什么技能,缺乏量化描述。多余内容:例如“班委成员”和“宣传委员”这类校园经历,叙述过于普通,缺乏和岗位相关的实质性贡献。,建议简写。3. 措辞专业性表达不够精准:例如“协助班长与团支书更好地为同学服务”显得较为笼统,没有实际成果的体现。用词重复:如“学习了焊接”“学习了光检”等重复词语较多,缺乏丰富的动词来展示个人能力(如“负责”“优化”“改进”等)。技能展示不足:虽然列出了UG和CAD证书,但没有明确提到这些技能如何在实际工作中发挥作用。4. 技能匹配度技能深度不足:虽然列出了掌握的软件和技术,但没有描述技能水平(如“熟练掌握”“精通”),也没有具体案例支持这些技能。缺乏岗位导向性:比如针对机械设计与制造方向,实习经历提到了“E6尾灯项目”,但没有详细说明自己在其中的技术贡献,可能会显得经验描述泛泛而谈。5. 自我评价问题表达空泛:如“具有良好的沟通协调能力”“责任心强”之类的描述太常见,没有让人眼前一亮的特点。缺乏成果支持:自我评价中的能力没有用具体项目、经历或成就来验证,可信度较弱。 兄弟加油
点赞 评论 收藏
分享
评论
68
115
分享
牛客网
牛客企业服务