一、单项选择题
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.(1)( (2) , (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,使表格奇数行为白色背景,偶数行为灰色背景,鼠标移上去时为黄色背景。
参考答案
1、C 2、A 3、D 4、D 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; }