2014年3月31日晚,我怀着略微忐忑的心情(第一次在线笔试^_^!!)进行了笔试,阿里巴巴的笔试题共有10道,几乎包含了Web前端开发的各个方面,有程序题、有叙述题,时间非常紧张,只完成了大概6道题。下面把遇到的题目跟大家分享一下!
1、
<!doctype html>
<html>
<head>
<style type="text/css">
div:not(.outer) p { color: purple; }
div.outer p { color: orange; }
</style>
</head>
<body>
<div>
<p>
我是 outer 里面的字
</p>
<div>
<p>
我是 inner 里面的字
</p>
</div>
</div>
</body>
</html>
3、
要求实现一个多行文本输入框,固定宽度。可根据用户输入的内容多少进行高度自适应变化。如,用户输入了1行文字,则输入框显示为1行,而有2行文字,就显示2行。如微博的评论回复。
4、
编写一个JavasSript函数,给定一个DOM节点node和一个正整数n,返回node的所有第n代后代节点(直接子节点为第1代)
function getDescendants(node, n) {
// return an Array
}
5、有2个int型已经去重的数组a和b,都是已经从小到大排序好的。要求遍历b数组的数字,如果这个数字出现在a中,就将其从a删去;反之将其插入到a的适当位置,使a保持排序状态。
6、请描述一下从用户输入网址开始,到网页最后呈现出来的全过程,越详细越好,包括各种事件等。
7、
8、请评价以下代码并给出改进意见。
if (window.addEventListener) {
var addListener = function (el, type, listener, useCapture) {
el.addEventListener(type, listener, useCapture);
};
} else if (document.all) {
addListener = function (el, type, listener) {
el.attachEvent("on" + type,
function () {
listener.apply(el);
});
};
}
9、你最近看的前端相关技术书是什么?常关注的博客是哪些?你觉着哪个网站的交互做的好,为什么?
10、阅读如下代码:
var dog = function () {
return '汪';
};
var cat = function () {
return '喵';
};
(function () {
if (cat() === '喵喵') {
dog = function () {
return '汪汪';
}
}
function cat() {
return '喵喵';
}
})();
for (var i = 0; i < 10; i++) {
setTimeout(function () {
for (var j = 1; j <= i; j++) {
console.log(dog());
}
},
1000 * i);
}
问:1、为什么最终小狗叫了200声汪?请详细说明为什么。2、修改代码setTimeout部分代码,实现每隔1秒调用i(从1到10递增)次dog()。