1、[单选题]
有以下 ES6 代码
function * gen() {
yield 1;
yield 2;
yield 3;
}
下面选项描述正确的是哪个?
A.gen()执行后返回 2
B.gen()执行后返回 undefined
C.gen()执行后返回一个 Generator 对象
D.gen()执行后返回 1
--------------------------------------------------------------------------
解答:C正确;这是 ES6 的新特性,function 后面带星号* 的叫做 generator function,函数运行时,返回一个迭代器。
2、[不定项选择题]
语句 var arr=[a,b,c,d];执行后,数组 arr 中每项都是一个整数,下面得到其中最大整数语句正确的是哪几项?
A.Math.max(arr)
B.Math.max(arr[0], arr[1], arr[2], arr[3])
C.Math.max.call(Math, arr[0], arr[1], arr[2], arr[3])
D.Math.max.apply(Math,arr)
--------------------------------------------------------------------------
解答:选B C D;A 选项错误,因为函数 Math.max(x);的参数是 Number 类型,可以是小数,整数,正数,负数或者是0,如果不是上面所述类型就会返回 NaN。
3、[编程题]
写一个 printDom函数,输出页面上所有宽度和高度大于 50 像素的节点。
--------------------------------------------------------------------------
参考程序:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="width:30px;height:60px;">一</div>
<div style="width:60px;height:40px;">二</div>
<div style="width:60px;height:60px;">三</div>
<script type="text/javascript">
function printDom() {
var arr = [];
var elements = [];
if (document.all) {
elements = document.all;
} else {
elements = document.getElementsByTagName("*");
}
for (var i = 0; i < elements.length; i++) {
var ele = elements[i];
//width返回的是字符串,offsetWidth返回的是带边框的Number型数字
var width = parseFloat(ele.style.width) || ele.offsetWidth;
var height = parseFloat(ele.style.height) || ele.offsetHeight;
if (width > 50 && height > 50) {
console.log( ele.tagName, width, height )
arr.push(elements[i].tagName);
}
}
return arr;
}
//等网页加载完毕后立刻执行
window.onload = function () {
console.log(printDom());
}
</script>
</body>
</html>
运行结果:
---------------------------------------------简单分割线---------------------------------------
我的个人订阅号(大叔学前端/dashu_fe),感兴趣的可以关注下,谢谢!