阿里巴巴前端工程师笔试-2016年

一、单项选择题

1、  下列哪个操作是W3C标准定义的阻止事件向父容器传递:

A e.preventDefault()

B e.cancelBubble=true

C e.stopPropagation()

D e.stopImmediatePropagation()

2、以下关于盒子模型描述正确的是:

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

B IE盒子模型中:盒子总宽度 = 左右margin + 左右border + width

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

D IE盒子模型中:盒子总宽度 = width

3、使用CSS的flexbox布局,不能实现以下哪一个效果:

A 三列布局,随容器宽度等宽弹性伸缩

B 多列布局,每列的高度按内容最高的一列等高

C 三列布局,左列宽度像素数确定,中、右列随容器宽度等宽弹性伸缩

D 多个宽高不等的元素,实现无缝瀑布流布局

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

A 语义化的HTML有利于机器的阅读,如PDA手持设备、搜索引擎爬虫;但不利于人的阅读

B Table 属于过时的标签,遇到数据列表时,需尽量使用 div 来模拟表格

C 语义化是HTML5带来的新概念,此前版本的HTML无法做到语义化

D Header、article、address都属于语义化明确的标签

5、关于HTTP协议,下面哪个说法是正确的?

A HTTP协议是有状态协议。

B 以下是一个Http链接的response 的响应头: GET /xxx/xxx/js/lib/test.js HTTP/1.1 Host: 127.0.0.1 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: */*

C RESTful 接口中,利用HTTP协议的method字段来描述要对资源操作的方式,比如GET表示获取资源,POST表示新增一个资源,PUT表示更新资源,DELETE 表示删除资源等等。

D 一个HTTP请求返回的HTTP状态码中,304表示临时重定向。

二、填空题

6、使用 for in 循环数组中的元素会枚举原型链上的所有属性,过滤这些属性的方式使用()函数。

7、在空白处填入适当的代码使输出结果成立:


function showMoney( ) {
(   7    )
};
 
var personA = new Object;
var personB = new Object;
 
personA.money= "100";
personB.money= "150";
 
personA.showMoney= showMoney;
personB.showMoney= showMoney;


输出结果:

console.log(personA.showMoney( )); //"100"

console.log(personB.showMoney( )); //"150"

 

8、删除给定数组中的第二项和第三项,并且在得到的新的数组中第一项后面添加一个新的值

var arr1 = ['a','b','c','d','e'];

var arr2 = arr1.12 , 3 ,'newvalue')

三、程序题

9、写一个求和的函数sum,达到下面的效果


// Should equal 15
sum(1, 2, 3, 4, 5);
// Should equal 0
sum(5, null, -5);
// Should equal 10
sum('1.0', false, 1, true, 1, 'A', 1, 'B', 1, 'C', 1, 'D', 1,
  'E', 1, 'F', 1, 'G', 1);
// Should equal 0.3, not 0.30000000000000004
sum(0.1, 0.2);
10、请写一个表格以及对应的CSS,使表格奇数行为白色背景,偶数行为灰色背景,鼠标移上去时为黄色背景。


11、写一个traverse函数,输出所有页面宽度和高度大于50像素的节点。10、请写一个表格以及对应的CSS,使表格奇数行为白色背景,偶数行为灰色背景,鼠标移上去时为黄色背景。


参考答案

1C  2A  3D  4D  5、C  6、hasOwnProperty  7、return this.money;

8、(1)splice(2)1(3)2

9、参考答案

function sum() {
    var nResult = 0;
    for (var i = 0, l = arguments.length; i < l; i++) {
    nResult +=  (!isNaN(arguments[i]) && window.parseFloat(arguments[i]))||0;
    }
    return nResult.toFixed(3) * 1000 / 1000;
}
10、参考答案

<table class="table">
  <tr><td>第一行</td></tr>
  <tr><td>第二行</td></tr>
  <tr><td>第三行</td></tr>
  <tr><td>第四行</td></tr>
</table>
 
<style>
  .table tr:nth-child(2n-1){
      background-color:white;
  }
  .table tr:nth-child(2n){
      background-color:grey;
  }
  .table tr:hover{
      background-color:yellow;
  }
</style>

11、参考答案

function traverse(oNode) {
    var aResult = [];
    oNode = oNode || document.body;
    if (oNode.style) {
        var nWidth = window.parseInt(oNode.style.width, 10) || 0;
        var nHeight = window.parseInt(oNode.style.height, 10) || 0;
        if (nWidth > 50 && nHeight > 50) {
            aResult.push(oNode);
        }
    }
    var aChildNodes = oNode.childNodes;
    if (aChildNodes.length > 0) {
        for (var i = 0, l = aChildNodes.length; i < l; i++) {
            var oTmp = aChildNodes[i];
            aResult = aResult.concat(traverse(oTmp));
        }
    }
    return aResult;
}

个人资料
游弋的蔷薇
等级:7
文章:27篇
访问:3.8w
排名: 10
下一篇:阿里巴巴前端开发工程师实习生招聘-2017
猜你感兴趣的圈子:
阿里巴巴笔试面试圈
标签: onode、showmoney、盒子、var、aresult、面试题
隐藏