1、[单选题] 有以下 ES6 代码
function * gen() { yield 1; yield 2; yield 3; }
下面选项描述正确的是哪个?
A.gen()执行后返回 2
B.gen()执行后返回 undefined
C.gen()执行后返回一个 Generator 对象
D.gen()执行后返回 1
答案:C
提示:这是 ES6 的新 feature, 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、[问答题] 写一个 traverse 函数,输出所有页面宽度和高度大于 50 像素的节点。
<script language="javascript"> function traverse() { 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) { arr.push(elements[i].tagName); } } return arr; } window.onload = function () { console.log(traverse()); console.log("a"); console.log('a'); } </script>