2015年9月阿里校招前端工程师笔试题

前一段时间参加了阿里的9月校招,为了贯彻及时总结的精神,今天就来总结一下我做的这套题目吧。

1.下面哪段css代码通常用于页面水平居中:

1 A:site-align:center;
2 B:margin:center;
3 C:margin:auto 0;
4 D:margin:0 auto;

这题很简单,水平居中答案选D。每个选项来剖析一下, A选项在我做开发两年来,完全没有见到过,初略百度一下也没看到相关的东西;B选项,明显错误;D,其实D可以做到页面垂直居中,要怎么做呢,如下图,默认是horizental的,如果改变书写模式,改成vertical,就可以实现垂直居中了,不妨试试

-webkit-writing-mode: vertical-rl; /* for browsers of webkit engine */
writing-mode: tb-rl; /* for ie */ 

2.下列关于http协议状态码描述错误的是:

1 A:200 请求成功
2 B:302 URL临时性替代
3 C:304 页面未修改
4 D:403 页面未找到

关于状态码,百度可以有很详细的介绍,这里简单说说,1开头表示消息,2开头表示成功请求,3开头表示重定向,意思是你请求的这个资源在服务器指向另一个地址,需要再请求,4开头表示客户端的错误,可能是url地址错误或者参数错误,5开头表示的是服务器错误,服务器挂了(?)之类的。所以,我们可以判断,200是OK,请求成功没问题。302的意思是Move temporarily,暂时性移动了,符合题意。304是Not Modified,没有被修改,符合题意。403是Forbidden,字面意思是禁止,服务器已经理解请求,但是拒绝执行它。所以D错误。另外提一下,页面未找到是我们见得最多的404。

3.以下关于盒子模型描述正确的是

A:标准盒子模型中:盒子的总宽度=左右margin+左右border+左右padding+width
B:IE盒子模型中:盒子总宽度=左右margin+左右border+width
C:标准盒子模型中:盒子的总宽度=左右margin+左右border+width
D:IE盒子模型中:盒子总宽度=width

盒子模型有两种,假如我们设置有以下设置:

width:100px;
margin:20px;
border:5px solid #fff;
padding:10px;

在IE盒子模型(box-sizing:border-box)中里面,这个容器的宽度就是100px=内容的width+左右border+左右padding,所以内容的width为40px,盒子宽度为100px。

而标准盒子模型(box-sizing:content-box)里,width就指的是内容的width,所以容器的宽度是width+左右border+左右padding,总共是160px;

所以答案是A,答案D很接近,IE盒子总宽度应该是width+左右margin。

4、对于事件委托(事件代理)描述不正确的是:

A:事件委托实现原理利用了冒泡的机制
B:事件委托提高了页面的性能
C:事件委托并不能提高性能,只是简化了事件管理成本
D:一般在JQuery中个利用delegate方法来进行事件委托

首先要知道什么是事件委托,就比如,onclick,onmouseover,onmouseout这些js事件本来是加在一个元素上面的,现在我不加,我让其他元素来实现。事件监听器是被添加到它们的父元素上。事件监听器会分析从子元素冒泡上来的事件,找到是哪个子元素的事件。

$(function(){
    $(‘#ul12‘).delegate(‘li‘,‘click‘,function(){
        alert(123);
    })
});

像上面这样的就运用了事件委托。事件委托有什么好处呢?

1、提高性能。

2、新添加的元素还会有之前的事件。

所以到这里,我们知道了,答案是C。另外值得一提的是,现在jquery也可以用on方法来进行事件委托。

5、关于HTML语义化,以下哪个说法是正确的?

A:语义化的HTML有利于机器的阅读,如PDA手持设备,搜索引擎爬虫;但不利于人的阅读
B:Table属于过时的标签,遇到数据列表时,需尽量使用div来模拟表格
C:语义化是HTML5带来的新概念,此前版本的HTML无法做到语义化
D:Header、article、address都属于语义化明确的标签

这题显然B,C错误,那么A的后半句有点问题,语义化并不会造成阅读有问题的,所以答案选D。

6、编码判断一个对象obj自身是否包含某属性“render”

for(var propName in obj){
        if(){
            console.log(true);
        }
    }

直接答案:propName==‘render‘。因为题目自带遍历了,所以就不用obj.hasOwnProperty();

7、使用递归的方式实现一个求和函数

function sum(num){
        if(num>1){

        }else{
            return 1;
        }
    }

答案:return num+sum(num-1);

8、输出对象中值大于2的key的数组

var data={a:1,b:2,c:3,d:4};
Object.keys(data).filter(function(x){return       });
期待输出:["c","d"]

解析:首先,Object.keys(obj)返回一个数组,数组里是该obj可被枚举的所有属性。

console.log(Object.keys(data));//返回["a", "b", "c", "d"]

而filter的作用是从数组中找到适合条件的元素(比如说大于某一个元素的值)

var arr=[1,23,5,78,34,55,13];
        console.log(arr.filter(function(x){
            return x>23;
        }))//返回[78, 34, 55]

回到题目,在得到了["a", "b", "c", "d"]这个数组后,我们要找出它们所对应的值大于2的,就应该拿着这些值回去data数组里面找,所以判断if(data[x]>2),true的话就return,由于题目只有一行,所以用一个三目运算符即可。

答案:data[x]>2?x:null;

9、使用尽量多的方式实现一个块元素在容器中水平垂直居中,可以使用css3特性

这题就不细说了,网上很多,关键在于自己动手多实践,去理解,只是看是永远记不住的。

http://www.3lian.com/edu/2014/07-09/154729.html

http://blog.sina.com.cn/s/blog_5177c22601012ooj.html

http://www.dbpoo.com/css3-transform-vertical-center/

10、请将下面的对象

{"react":100,"angular":75,"javascript":116,"backbone":15}

排序后输出为

{"backbone":15,"angular":75,"react":100,"javascript":116,}

答案:

var obj={"react":100,"angular":75,"javascript":116,"backbone":15}
        console.log(Object.keys(obj).sort(function(a,b){
            return obj[a]-obj[b];
        }));
时间: 2024-11-10 08:38:49

2015年9月阿里校招前端工程师笔试题的相关文章

2015阿里校招研发工程师笔试题

1.C++内存分配中说法错误的是() A 对于栈来说,生长方向是向上的,也就是向着内存地址增加的方向 //错,对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向:对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长. B 对于堆 ,大量的new/delete操作会造成内存空间不连续 //对,对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低.对于栈来讲,则不会存在这个问题,因为 //栈是先进后出的队列,他们是如此的一一对应,以至

Java工程师笔试题整理[校招篇]

隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打好Java基础:如何一步一步的学Java - 学习编程 - 知乎专栏.然后再来看一下练习一下各大厂的面试笔试题目. 如果以下内容满足不了你,你还可以去看这篇: 2016校招编程题汇总 - 学习编程 - 知乎专栏 进入主要内容(主要内容整理来自牛客网:牛客网)(以下内容按照各大公司进行划分,对每一公司按照年份进行划分,如果想想下载以下内容,可以

前端试题-2016年阿里前端开发工程师笔试题6,7,8题的解法

2016年阿里前端开发工程师笔试题(只有题,没有答案): http://www.cnblogs.com/sdgf/archive/2015/08/18/4740698.html 第6题:请在____处填写答案,从而达到题目的要求 var arr = [1, 2, 3, 4, 5]; var result = arr.sort(_______________________________).join("+"); console.log(result); 解答:在排序当中,如果需要按照某

腾讯web前端开发工程师笔试题及答案

1. 如何实现事件委托? 首先要知道什么是事件委托. 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li的情况),为每个li添加事件侦听就会对页面性能产生很大的影响. 就像下面这段代码: <!DOCTYPE HTML><html><head><meta charset="utf-8" /><ti

web前端工程师面试题

[HTML && CSS]--来自百度文库 1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? Doctype 声明位于文档中的最前面的位置,处于标签之前.此标签可告知浏览器文档使用哪种 HTML 或XHTML 规范. 该标签可声明三种DTD 类型,分别表示严格版本.过渡版本以及基于框架的 HTML 文档. 当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性.为了实现这一点,他们创 建了两种呈现模式:标准模式和混杂模式(quirks mode)

web前端工程师 面试题

今天刚结束一场面试(含笔试),对自己的表现不太满意,感觉没有发挥好应有的水平,也只能怪自己平时没有及时积累和整理知识,准备也不充分. 就不扯那么多了,下面是我面试时,没能答上或者觉自己回答的不够好的题目. 1.position 属性规定元素的定位类型 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right" 以及 "bottom&

搜狗2015C++工程师笔试题解题分析

试卷链接:搜狗2015 C++工程师笔试题. 1.假设整数0x12345678 存放在内存地址0x0开始的连续四个字节中 (即地址0x0到 0x3). 那么在以Little Endian字节序存储的memory中,地址0x3的地方存放的字节是: 0x12 0x34 0x56 0x78 分析:选D.小端法和大端法. a) Little-Endian就是低位字节排放在内存的低地址端, 高位字节排放在内存的高地址端. b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地

2014-07-29 Asp.Net 工程师 笔试题

一.选择题    1.下列描述错误的是() A  类不可以被多重继承而接口可以: B  抽象类自身可以定义成员而接口不可以: C  抽象类和接口都不能被实例化: D   一个类可以继承多个基类和多个基接口: 2.下列哪个名词和WebServices不直接相关() A  UDDI B  GUID C  WSDL D  SOAP 3.下列选项中,()是引用类型 A  enum B struct C  string D  Int 4.声明一个委托 public delegate int myCallB

iOS开发工程师笔试题

iOS开发工程师笔试题 分类: IOS 面试题2013-01-17 10:28 820人阅读 评论(0) 收藏 举报 随着iOS平台开发的职位的增加,笔试.面试也越来越有“套路”,这里我总结了一些面试题,多数是Objective-C的基础知识,适合于面试新人,答案是我自己答的,不准确的地方,欢迎指出. 1.   Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以实现多个接口,通过实