蘑菇街暑期实习生一面面经 大三

身份:双非本科大三,大二从小程序开始学起前端,之后自学前端。

4月11一面,4月16接到二面通知

自我介绍

从事前端相关工作用的最多的框架是什么?

没有使用过,但是在学react框架。

到什么程度?

在准备面试,本来是打算用这个写一个项目的,但是现在没有写了,记的不太牢,没有实际的运用。

这样吧,因为你没有特别熟悉的框架,所以我问你一些基础的掌握情况吧

CSS重绘和重排两个概念,就像我们做性能优化的时候会关注的,你能讲一下什么样的场景下会触发重绘,什么样的场景下会触发重排吗?

重绘是当大小,属性,颜色字体都确定下以后,元素外观的一个改变触发的浏览器的一些行为。浏览器会根据元素的新属性重新绘制这一区域。重排也叫回流,是元素的尺寸布局发生改变,需要重新的将页面进行绘制,叫做重排。在页面加载的时候,页面至少需要一次回流。重绘不会引起重排,但是重排一定会重绘。

ok,第二个问题是关于页面自适应的rem和em有什么差别?

rem和em是网页字体大小。em是相对于父元素,rem是相对于页面的根元素。

根据你自己的这样的了解,基于CSS来做这个页面的性能优化你会有怎么样的思路?

首先CSS是应该放在html页面的头的部分。写CSS的时候尽量少使用父子选择器,因为在CSS树上进行查找的时候,是从右往左查找的,不是从左往右查找的,之前我有犯过这个错误,发现这样查找是非常慢的。因为从右往左是先选择子元素,如果从左往右查找会在树上一个一个循环遍历,会非常耗时。还有CSS会阻塞渲染,最好使用异步加载,尽量不要使用@import,而是使用link标签。link标签是html提供的,@import是CSS提供的,但是它会等到页面加载完以后再加载CSS。去掉一些没有用的CSS代码。给CSS文件进行文件压缩,可以提高页面加载速度。webpack方面没太接触。。 最好是要减少重排,还有没有必要的一些重绘。

JS基础:js中会有一些关键字定义变量,var,let,const三个有什么差别?

let和const是es6新出现的定义变量的,let是块级作用域中使用,var会将变量提升,const是禁止进行修改的。使用let声明的变量只会在它的块中作用。在声明前是没有办法使用的。

那我问一下,const声明的变量的话我有办法修改它吗?

不可以吧

有特殊情况吗?

他就是在声明的时候必须初始化,其他时候应该不可以修改吧。。

js中会用到数组的操作和方法比如foreach和map这两个会有什么差别?

他俩都可以循环遍历数组,foreach不可以使用break跳出循环,map可以返回经过一定操作以后的新数组,在map中传入一个函数,在函数里写对数组单个元素的一些操作。

你在做这些项目的时候有用到异步数据请求吗?有遇到过跨域的情况吗?

有。我在做第二个项目的时候用了node来解决跨域的问题。node前后端分离,当时做的是课设项目,前后端分离是大趋势,使用的node进行反向代理实现跨域。其他的还了解到jsonp实现跨域。我们主要使用的是node来做的跨域。

你有了解过其他方案吗?jsonp的原理你有了解吗?

了解,利用script标签不受跨域限制的特点来做跨域。动态添加script标签,因为src可以跨域。向其中传一个回调函数的名称,当服务器返回js文件的时候,会根据给的这个回调函数的名返回对应的文件,前端再来进行调用。

cookie,sessionStorage,localStorage的区别?

cookie是网站为了标识用户信息,通过http请求头在客户端和服务器之间进行携带发送的,是自动携带的。

sessionStorage和localStorage是不会把数据主动发送到服务器,是在本地进行保存。

cookie存储大小一般是不能超过4k的,另两个一般是在5M以上。

还有存储的时间长度不同,sessionStorage在浏览器关闭的时候会自动删除。localStorage会持久的保存数据,如果不主动删除就不会删除。cookie可以设置他的过期时间,在过期之前都一直有效。

讲一下做这些项目过程中让你印象更深刻的一些点,比如说克服的技术难点啊,遇到的之前没有办法处理的问题,用一些非常规的手段解决的,有没有这样的一些案例?

写微信小程序的时候:MVVM,回调地狱,使用promise函数。微信小程序下拉刷新的时候会跳到顶部,不可以使用scroll-view装wx:for循环模板。

使用node写服务器的时候,node和art-template模板引擎的适配。

你有什么想了解的吗?

您是哪一部门的呢?

负责公司中后台的,内部的运营的系统和商家的系统。

您对我做个点评吧

首先就你自学的情况来看还是比较不错的,通过对原生的js也好,或者是看小程序的文档也好,能够完整地做一个产品出来,本身是比较不错的。需要加强的一部分第一个是:我并不是说前端工程师一定要说回一个框架,但是说现在有很多公司确实是基于框架做一些日常工作,比如你了解过的Vue,React等框架。这个是一个趋势,我们没有办法避免。所以可能掌握一些框架会相对来说让你更有竞争力。第二,你回答一些基础问题的时候可能80%你都回答的上来,但是也有20%是你知识的盲点,因为我今天问的问题都是比较基础的,这些比较基础的问题如果你还存在一些盲点的话可能也会影响让你后续的在前端的这个岗位上的一些竞争,那我觉得你的基础还有提升的空间。其他的我觉得都挺不错的。然后你现在在大连这边上学是吧,然后你老家在内蒙,你未来有对自己就业相关的规划是什么样的呢?

我觉得南北方这个我不是很在意这些,我觉得如果有机遇我都会愿意去尝试。不想考研,想找实习然后继续工作。

总结:

面试官人也非常好,我讲话的时候相比之前虽然好了些,但是还是有很多嗯,啊,这种口头语,重新听录音的时候依然能感觉到那种紧张害怕的情绪,要多多锻炼,下次一定要更轻松。

面试官对我的点评真的是非常非常走心了,我也觉得很幸运能遇到这样的面试官,非常感谢他!今天收到了二面通知,非常感谢他对我的肯定,我一定会好好准备的!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值