1. 无线端开发和PC端开发有什么不同?
从三个方面讲:
HTML:使用很多新的标签:
在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. 移动端图片有做什么优化
- 根据设备的像素密度使用不同大小的图片;实现方法:通过cdn的云处理,在js里判断是不是Retina屏幕,根据像素比使用不同尺寸的图片达到目的
- 使用新的格式比如Webp。
- 压缩图片,也可以使用cdn来实现,jpg控制质量
- 使用雪碧图,将小图合并;但是也不能做太大的图片,占用太多的内存。
3. 对ES6的了解
- 新增的变量定义关键字:let, const;分别对应块级作用域和常亮
- 对数组,正则表达式进行了一些拓展,比如解构赋值(当时忘记这个词了),其实并没怎么了解,只是有看过
- 异步写法的优化:promise的使用
4. 对Node的了解
- 使用node写过豆瓣首页的爬虫
- 爬虫的使用有使用第三方的模块,比如eventproxy;也有使用promise进行改写
- 知道babel编译,但没有用
确实没怎么写过啦,不过下次可以说一些gulp相关的东西,一些文件操作
5. 写测试
- 使用Mocha和Chai
- 主要是功能性的测试,比如表单。实际项目不会写,因为时间比较紧张。
- 学习了百度的IFE的教程,里面写了一些测试,不用人工测试比较方便。
6. Angular相关
- 对双向绑定的理解。当时说的有点乱,这里引用一下:
用户在视图上的修改会自动同步到数据模型中去,同样的,如果数据模型中的值发生了变化,也会立刻同步到视图中去。
当时把模型说成了js了=。=捂脸逃 - 双向绑定怎么实现。
脏检查
维护一个监控数组,对前端事件进行绑定,改变模型的时候调用更新方法;($digest)
更新方法是通过遍历监控数组,对每一项进行检查,发现有不同的时候就相应的更新数据
在模型里面使用$apply或者改变$scope的属性也会触发$digest - 活动使用一些利弊
比较笨重,性能不太好,需要不断的遍历检查;可以使用vue或者react来做;
好处就是渲染数据比较方便,更新模型也比较方便 - 使用的一些心得
封装一些指令和过滤器:cdn图片处理的过滤器,全站活动通用的下载浮层封装成指令模板
7. 跨域解决方案
- jsonp。其实是面试快结束了,面试官问我有没有什么问题。我就问了jsonp是不是必须要后台的支持。答案是是。
jsonp利用的是资源可以跨域,请求到数据。本质上请求接口得到的数据是一个变量,然后在js里对变量进行操作。
jsonp的返回必须要字符串拼接成合法的js语句,然后才能执行(我问是因为Angular好像不用后台支持就能用了,现在想应该是后台有写好吧,开发的人没有去问。然后面试官就问我其他的跨域解决方案了) - 添加请求头,就是CORS,定义一下Access-cross-allow-origin,如果当前请求的域名在这里面的话就可以跨域了。顺便提一下,这里会产生一个OPTION请求,浏览器自己请求的,进行嗅探
- 通过后台代理进行,比如后台java可以请求到跨域的数据,然后进行处理后再返回,后台和前端页面是同一个域名,就没有跨域的问题了
8. 其他
对HTTP2的了解:不太了解,说了一下增加并发数,忘记了=。=引用:
异步连接多路复用;
头部压缩;
请求/响应管线化;
多路复用请求;
对请求划分优先级;
压缩HTTP头;
服务器推送流(即Server Push技术);
SPDY试图保留HTTP的现有语义,所以cookies、ETags等特性都是可用的。复杂一点的选择器可以用document.querySelector来实现
- 面试评价(我问的):可以增加知识的深度,加强js基础,库和框架是学不完的,多深入了解
- 注意移动端的性能,内存,电量,流量都是很重要的,要选择一些轻量的解决方案
- 自我介绍感觉有点啰嗦了=。=实习经历感觉讲的有点多,下次要注意一下
9. 体会
当时5点正在刷网页,好像是在看围棋大战。戴着耳机,突然感觉到有动静,有点激动,发现还是杭州的。不过当时没想到是阿里,以为是什么推销电话=。=真是太naive啦。
面试官声音好好听啊~了解到是面试,很紧张,就麻烦面试官等2分钟,想自己整理一下情绪哈哈哈。
然后就关掉浏览器,打开自己的博客啊,简历啊,准备等会可以看看,又准备一些纸和笔,想待会可以写下来整理一下思路,顺便记录一下面试问题。
然后打开了手机的录音机= =想把面试过程录音下来。然而,事实是,一接到电话就自动停止录音了….电话结束了才发现。
接着就是插上耳机等面试官打电话过来了,还是很快的。
面试官叫阿大,来自技术工程部,属于淘宝的部门。
觉得阿大好好人,好nice!!我说完一段话都会回应我,也是让我没那么紧张了。
面试24分钟,面试完脸热热的= =,也很口渴。
啊~~好想去阿里啊~~~
目前状态是面试中,估计一面是过了吧…二面希望自己好好加油。