2014阿里巴巴WEB前端实习生在线笔试题

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 class="outer">
            <p>
                我是 outer 里面的字
            </p>
            <div class="inner">
                <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、

2014阿里巴巴WEB前端实习生在线笔试题

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()。 

相关推荐