Press "Enter" to skip to content

阿里2014实习生招聘前端开发笔试题

1、现有一个Page类,其原型对象上有许多以post开头方法(如postMsg);另有一拦截函数check,只返回true或false。请设计一个函数,该函数应批量改造原Page的postXXX方法,在保留其原有功能的同时,为每个postXXX方法增加拦截验证功能,当check()返回true时继续执行原postXXX方法,返回false时不再执行原postXXX方法。

2、下面这段代码想要循环延时输出结果0 1 2 3 4 , 请问输出结果是否正确,如果不正确,请说明为什么,并请修改循环内的代码使其能输出正确结果。

for(var i= 0; i < 5; i++){
    setTimeout(function(){
       console.log(i+' ');
    }, 100);
}

3、在不使用图片的情况下,实现图示的气泡框:

4、请简述用html5实现flappy bird的具体思路以及相关程序设计

5、实现一个jsonp方法,要求回调函数按照请求发出的顺序依次执行。

function jsonp(url, data, callback){
//此处省略一万字
}

调用方法:

for (var i = 0; i < 5; i++) {
    (function (index) {
        jsonp("http://ju.taobao.com/api.php",{
            cat : 1000,
            page : 1
        }, function(){
            console.log(index);
        });
    })(i);
}

输出:0 1 2 3 4

6、有一个100项的数组,每一项是一个图片url,如http://test.com/a.jpg,里面有些图片无效了(404),请使用js去除这些无效图片url形成新的数组,数组顺序保持一致。可以借助框架,请写出代码,并说明你这段代码的优缺点?

7、请使用原生方法实现以下效果:

<div id='content'>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
......
<div>10000</div>
<div id='send'></div>

Q: 记录用户每次点击items的内容,并在点击send时按照点击内容从大到小的顺序alert出来。每次点击send后清空记录。 例:用户第一次点击2,第二次点击3,第三次点击1, 第四次点击3, alert的内容应该为3,3,2,1

8、假如你是一名互联网创业者,你带领一个小型团队,要快速开发一个全新的社交网站,你会使用哪些开源技术、开发技术、web服务来开发、建立、运维你的网站,能给出选择原因更佳

9、我们会使用Cookie来记录一些数据在客户端上,这样做的目的是什么,有什么好处和不妥,有更好的方式吗,请给出其中一种或者几种方案的简单JS封装实现(API包含get,set,del,clear)以及场景介绍。

10、给你一副扑克,共52张,要求打散后随机发到(console 输出)ABCD四个人手中。请使用JS实现(牌用1~52的数字表示)