未分类

实习招聘面试经历-1

Something amazing

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

从三个方面讲:
HTML:使用很多新的标签:

1
2
<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文件的压缩合并混淆;其他的当时没想到

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的了解:不太了解,说了一下增加并发数,忘记了=。=引用:

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

  2. 复杂一点的选择器可以用document.querySelector来实现

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

9. 体会

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

分享到