2007淘宝UED招聘题解(前端开发部分)

作者:小马 来源:Taobao.com UED Team 时间:2007-11-24 10:32:00 

很有趣的招聘方式和题目:

以下是该次招聘前端开发工程师的聘题解答:


小贤是一条可爱的小狗(Dog),它的叫声很好听(wow),每次看到主人的时候就会乖乖叫一声(yelp)。

从这段描述可以得到以下对象:


function Dog() {
this.wow = function() {
alert(’Wow’);
}
this.yelp = function() {
this.wow();
}
}


小芒和小贤一样,原来也是一条可爱的小狗,可是突然有一天疯了(MadDog),一看到人就会每隔半秒叫一声(wow)地不停叫唤(yelp)。

请根据描述,按示例的形式用代码来实现(提示关键字: 继承,原型,setInterval)。

题解:


function MadDog() {
    this.yelp = function() {
        var self = this;
        setInterval(function() {
            self.wow();
        }, 500);
    }
}
MadDog.prototype = new Dog();
//for test
var dog = new Dog();
dog.yelp();
var madDog = new MadDog();
madDog.yelp();


以上是较为规范的一个解法,我们希望通过此题,检查应聘者对JS的语言基础及的面向对象开发的理解程度。其中的难点在于闭包的应用。

使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。

题解:


<style type="text/css">           
.box {     
    display: table-cell;     
    vertical-align:middle;     
    width:200px;     
    height:200px;     
    text-align:center;     
    /* hack for ie */     
    *display: block;     
    *font-size: 175px;     
    /* end */     
    border: 1px solid #eee;     
}     
.box img {     
    vertical-align:middle;     
}     
</style>
<div class="box">
    <img src="http://pics.taobao.com/bao/album/promotion/taoscars_180x95_071112_sr.jpg" />
</div>


很遗憾,这个解法用到了css hack。我们也不理解为什么设置font-size可以让IE显示垂直居中的效果。根据我们的计算,高度/字体大小的比值为1.14左右时IE可实现垂直居中。

当然还有很多其他的实现方案,但需要引入额外的标签。对于流量超大的淘宝网而言,我们经过权衡,倾向于在此问题上合理的使用hack。

在不使用 border 样式的情况下,画出一条一px高的横线,在不同浏览器的Quirksmode和CSSCompat模式下都保持同一效果。

题解:


<div style="height:1px;background:#000;overflow:hidden;"></div>


此题要点是要求在浏览器的 QuirksMode 和 CSSCompat 模式下效果一致。解法有很多,以上是我们认为的最为合理的一种。

请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

题解


Array.prototype.distinct = function() {
 var ret = [];
 for (var i = 0; i &lt; this.length; i++) {
  for (var j = i+1; j &lt; this.length;) {
   if (this[i] === this[j]) {
    ret.push(this.splice(j, 1)[0]);
   } else {
    j++;
   }
  }
 }
 return ret;
}
//for test
alert(['a','b','c','d','b','a','e'].distinct());


这是最为普通的解法。在数组元素数量不高的情况下,它的性能是可以接受的。

原文请看这里

标签:招聘,淘宝,js,css
0
投稿

猜你喜欢

  • 使用XMLhttp生成html页面

    2007-08-17 11:21:00
  • 科学与艺术兼顾的有效网页视觉设计

    2007-09-18 18:03:00
  • asp如何实现强制登录注册?

    2010-05-24 18:13:00
  • mysql使用LOAD语句批量录入数据

    2010-03-18 16:19:00
  • asp加载access数据库并生成XML文件范例

    2008-07-22 12:41:00
  • 谈谈Javascript中的++和–操作符

    2009-05-08 11:43:00
  • Frontpage轻松下载网页或站点

    2007-10-22 13:14:00
  • SQL Server中Update的用法

    2008-12-29 13:57:00
  • 简评:JavaScript将成Silverlight的最大对手?

    2008-10-17 10:29:00
  • 巧用Dreamweaver MX控制页面元素

    2009-09-13 18:38:00
  • 100%点击区的滑动门

    2007-06-14 22:00:00
  • 如何在页面中对不同的数据进行相同的处理?

    2010-06-26 12:30:00
  • 可以用ASP生成由客户浏览器处理的客户端脚本吗?

    2009-11-01 18:06:00
  • Jquery实现div模拟Select控件

    2008-12-01 15:47:00
  • HTTP Headers 傻瓜教程[译]

    2010-01-25 12:48:00
  • 2行css代码屏蔽网页挂马

    2008-09-29 18:54:00
  • 浅说相册图片详情页面中大图的浏览方式

    2009-02-01 18:34:00
  • Dreamweaver MX技巧之超链接

    2009-05-29 18:40:00
  • 用Dreamweaver制作活动菜单条

    2009-07-10 13:15:00
  • Javascript的匿名函数

    2008-05-07 13:33:00
  • asp之家 网络编程 m.aspxhome.com