2016 实习招聘面试经历 - 1

文章写于 2016 年,旧的博客不维护了,一些文章直接迁移到这边来。如今看当时本身仍是很青涩的哈哈,不论是文笔仍是前端。这一篇是阿里的一面记录,比较基础。

1. 无线端开发和PC端开发有什么不一样?

从三个方面讲:
HTML:使用不少新的标签:
前端

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"><meta name="apple-mobile-web-app-capable" content="yes">复制代码

在body里面可使用<header><section>等H5新标签
CSS:使用rem单位;
rem单位的计算方法:40 * (设备宽度 / 设计图宽度);使用的时候实际设计图大小/40
面试的时候说错了=。= 可是他没告诉我(把设计图宽度和设备宽度说反了)
设置在document.documentElement.style.fontSize;设备宽度为document.documentElement.clientWidth
使用更多的CSS3动画;flex布局,可是要考虑兼容性问题
针对特定大小的设备进行媒体查询
JavaScript:使用一些轻量级的第三方库,如用zepto代替jquery,vue代替angular;
流量很重要,更要注重js文件的压缩合并混淆;其余的当时没想到
vue

2. 移动端图片有作什么优化

  1. 根据设备的像素密度使用不一样大小的图片;实现方法:经过cdn的云处理,在js里判断是否是Retina屏幕,根据像素比使用不一样尺寸的图片达到目的
  2. 使用新的格式好比Webp。
  3. 压缩图片,也可使用cdn来实现,jpg控制质量
  4. 使用雪碧图,将小图合并;可是也不能作太大的图片,占用太多的内存。

3. 对ES6的了解

  1. 新增的变量定义关键字:let, const;分别对应块级做用域和常亮
  2. 对数组,正则表达式进行了一些拓展,好比解构赋值(当时忘记这个词了),其实并没怎么了解,只是有看过
  3. 异步写法的优化:promise的使用

4. 对Node的了解

  1. 使用node写过豆瓣首页的爬虫
  2. 爬虫的使用有使用第三方的模块,好比eventproxy;也有使用promise进行改写
  3. 知道babel编译,但没有用
    确实没怎么写过啦,不过下次能够说一些gulp相关的东西,一些文件操做

5. 写测试

  1. 使用Mocha和Chai
  2. 主要是功能性的测试,好比表单。实际项目不会写,由于时间比较紧张。
  3. 学习了百度的IFE的教程,里面写了一些测试,不用人工测试比较方便。

6. Angular相关

  1. 对双向绑定的理解。当时说的有点乱,这里引用一下:
    用户在视图上的修改会自动同步到数据模型中去,一样的,若是数据模型中的值发生了变化,也会马上同步到视图中去。
    当时把模型说成了js了=。=捂脸逃
  2. 双向绑定怎么实现。
    脏检查
    维护一个监控数组,对前端事件进行绑定,改变模型的时候调用更新方法;($digest)
    更新方法是经过遍历监控数组,对每一项进行检查,发现有不一样的时候就相应的更新数据
    在模型里面使用$apply或者改变$scope的属性也会触发$digest
  3. 活动使用一些利弊
    比较笨重,性能不太好,须要不断的遍历检查;可使用vue或者react来作;
    好处就是渲染数据比较方便,更新模型也比较方便
  4. 使用的一些心得
    封装一些指令和过滤器:cdn图片处理的过滤器,全站活动通用的下载浮层封装成指令模板

7. 跨域解决方案

  1. jsonp。实际上是面试快结束了,面试官问我有没有什么问题。我就问了jsonp是否是必需要后台的支持。答案是是。
    jsonp利用的是资源能够跨域,请求到数据。本质上请求接口获得的数据是一个变量,而后在js里对变量进行操做。
    jsonp的返回必需要字符串拼接成合法的js语句,而后才能执行(我问是由于Angular好像不用后台支持就能用了,如今想应该是后台有写好吧,开发的人没有去问。而后面试官就问我其余的跨域解决方案了)
  2. 添加请求头,就是CORS,定义一下Access-cross-allow-origin,若是当前请求的域名在这里面的话就能够跨域了。顺便提一下,这里会产生一个OPTION请求,浏览器本身请求的,进行嗅探
  3. 经过后台代理进行,好比后台java能够请求到跨域的数据,而后进行处理后再返回,后台和前端页面是同一个域名,就没有跨域的问题了

8. 其余

  1. 对HTTP2的了解:不太了解,说了一下增长并发数,忘记了=。=引用:java

    异步链接多路复用;
    头部压缩;
    请求/响应管线化;
    多路复用请求;
    对请求划分优先级;
    压缩HTTP头;
    服务器推送流(即Server Push技术);
    SPDY试图保留HTTP的现有语义,因此cookies、ETags等特性都是可用的。node

  2. 复杂一点的选择器能够用document.querySelector来实现react

  3. 面试评价(我问的):能够增长知识的深度,增强js基础,库和框架是学不完的,多深刻了解
  4. 注意移动端的性能,内存,电量,流量都是很重要的,要选择一些轻量的解决方案
  5. 自我介绍感受有点啰嗦了=。=实习经历感受讲的有点多,下次要注意一下

9. 体会

当时5点正在刷网页,好像是在看围棋大战。戴着耳机,忽然感受到有动静,有点激动,发现仍是杭州的。不过当时没想到是阿里,觉得是什么推销电话=。=真是太naive啦。
面试官声音好好听啊~了解到是面试,很紧张,就麻烦面试官等2分钟,想本身整理一下情绪哈哈哈。
而后就关掉浏览器,打开本身的博客啊,简历啊,准备等会能够看看,又准备一些纸和笔,想待会能够写下来整理一下思路,顺便记录一下面试问题。
而后打开了手机的录音机= =想把面试过程录音下来。然而,事实是,一接到电话就自动中止录音了….电话结束了才发现。
接着就是插上耳机等面试官打电话过来了,仍是很快的。
以为面试官好好人,好nice!!我说完一段话都会回应我,也是让我没那么紧张了。
面试24分钟,面试完脸热热的= =,也很口渴。
jquery

~~好想去阿里啊

~~~
目前状态是面试中,估计一面是过了吧…二面但愿本身好好加油。web

相关文章
相关标签/搜索