阿里巴巴前端面试题

面试 时间:2017-11-29 我要投稿

  大家参加过面试吗?在面试前大家可以参考下大企业的面试方式!以下是阿里巴巴前端面试题欢迎大家阅读!

  阿里巴巴前端面试题

  面试官个子很高的样子,有点零星白头发,器宇不凡,一看就是个级别很高。

  进来问好,然后让我坐下面试官说:我们是1688技术部的面试,现在就开始吧。

  01. 介绍一下你技术方面

  刚开始有点紧张,说的有点断断续续,中间还有HR MM进来,另外一个mm进来给面试官端水

  02. 性能优化方面

  我理解为代码层面的

  我:

  一是:HTML层次结构不要太深,层次结构深会xx…

  二是:防止内存泄露,DOM和javascript是两种东西,特别在IE等浏览器,javascript操作DOM效率低,容易造成内存泄露,在不使用的时候最好设为null

  三是:写类的时候用prototype,不要动态this.xx = funciton(){}, 这样不能资源复用

  面试官:还有吗

  我疑问:哪方面的优化

  面试官:站点性能优化

  我豁然,说:哦,缓存啊,代码本地化

  面试官疑惑:本地缓存?如何?

  我:Expires,Etag等

  面试官:还有呢

  我:如果有条件使用cdn,还有cookie隔离

  面试官疑问:隔离?

  我:就是防止静态资源发送cookie,通过配置独立域名的,另外独立域名的好处还有多线程下载,因为传统浏览器限制了并发数2,是一个域名限制2,如果多一个域名可以多几个并发

  面试官:那么通常说脚本为什么要放头和放尾呢

  我:我知道一般放尾是为了不影响HTML的解析,另外放尾处可以不用DOM ready,直接可以document.getElementById等,至于放在头一般是变量定义吧,还有可能是受base得影响,放在头部一般是css文件,防止裸奔

  03. 字体定义有哪俩种方式

  我理解为字体定义font-face

  我:用font-face引入字体文件,有俩种?

  面试官:是字体大小

  我:哦,有俩种单位,一个是绝对值,类似于px,一个是相对值em之类的

  面试官追问:那em和px有什么关系

  我:如果父元素定义字体大小16px,那么子元素定义1em,大小就是16px

  追问:em默认值是多少

  我:不太清楚,跟浏览器设置有关吧

  04. 弹性布局和响应式及重构

  我:通过media-query,让不同浏览器展现不同布局

  面试官:还有吗?

  (我有点卡了,这方面确实没怎么研究)

  继续说:每个组件在不同屏幕上显示不同样子吧,比如导航菜单在宽屏下显示一通栏,在手机上显示一个按钮

  (其实他想听到我对弹性布局、流式布局的解释,用相对单位、max-width来控制等)

  面试官:有一篇文章中说99%的网站都需要被重构,这个文章你有看过吗?

  我:没有,听过

  面试官:为什么这么说?

  我:主要是政府等网站,大量的使用了table等标签,不规范,不过这个地方成本很高。

  (这个问题没回答好,有点答非所问,不知道当时怎么想的,应该从规范、趋势、移动端方面去回答这个问题)

  05.你知道什么叫优雅降级和渐进增强

  我:我知道有两种,至于如何和这两个词对上不知道,一种是类似于border-radius,能显示圆角更好看,不能显示就显示方形,用户也可以接受;另一种是比如我要一个长连接,在高端浏览器上使用websocket,不能使用的用iframe流或者ajax,这个已经有socket.io封装了,算是渐进增强吧

  06.HTML5主要增强了什么

  我:主要增加了语义化话标签

  面试官:哪些标签

  我:header, footer, article, nav

  面试官:语义化标签有什么用

  我:语义化标签主要是利于SEO,还有增强阅读性,增强可维护性,一看header就是是头部,一看footer就知道是尾部,一看nav就知道是菜单

  面试官:HTML5其他方面呢

  我:增加了很多API,当然我没有都使用过,API开发出来是给我们用的,不是为了让我们去记忆的

  07. 你平时用哪些浏览器

  我:firefox,safari,chrome啊,IE用的少

  面试官:开发主要用哪个

  我:firefox

  面试官:装了哪些插件

  我:firebug,firephp,至于其他的Yslow,之前装过,我们项目中用不到,所以就没用了,主要还是用firebug

  08. 有什么需要补充的么

  我:最近在研究Node,感觉Node.js挺火的,之前看了一本书,一直没时间实践,因为我们是弄互联网软件的,不像运营性质的,活总是做不完,打算以后抽时间出来把node和html5新技术用上,

  面试官追问:Node.js主要解决了什么问题

  我:高并发,异步编程,异步编程有好处也有不好处,比如弄的代码层次很深,大量的callback

  09. 有什么需要交流的么

  我:你们新技术用的多吗

  面试官:多,非常多,主要在移动端上面

  我:我还没怎么接触移动端

  10. 你会Flash么

  我:UI不会,前面说过了,as可以写,虽然不像javascript那么熟,他们都是ES规范的,我只要知道提供给我的API,能写东西的

  中间HR MM针对我简历问了一些问题,工资啊,职位啊,到岗时间啊等

  11.最后,还有什么问题需要问我的么

  我笑说:前面都问了,没什么要问的了,呵呵

  (我只准备了一个问用来回答9了)

  然后HR MM说:我们先出去等一会。

  等了大概10分钟,HR走过来跟我说,你的面试就结束了,5天后电话通知你。

  第一部分:用CSS实现布局

  让我们一起来做一个页面

  首先,我们需要一个布局。

  请使用CSS控制3个div,实现如下图的布局

  第二部分:用javascript优化布局

  由于我们的用户群喜欢放大看页面

  于是我们给上一题的布局做一次优化。

  当鼠标略过某个区块的时候,该区块会放大25%,

  并且其他的区块仍然固定不动。

  提示:

  也许,我们其他的布局也会用到这个放大的效果哦。

  可以使用任何开源代码,包括曾经你自己写的。

  关键字:

  javascript、封装、复用

  第三部分:处理紧急情况

  好了,我们的页面完成了。

  于是我们将页面发布上网。

  突然,晴天霹雳,页面无法访问了,这时候,你会怎么做?

相关推荐