淘宝UED Web前端开发面试题(含问答)2015年4月

匿名网友 匿名网友 发布于: 2015-10-14 00:00:00
阅读 151 收藏 0 点赞 0 评论 0

笔试题:
1、根据下图编写一段XHTML

d54b4b58-e6a0-11e4-8069-562090ae318a

考点:前端工程师的语义化标签知识以及模块化HTML代码知识;
参考答案:

<div class="dialogPractise">
<h2>对话练习</h2>
<ul class="dialogPractise-bd">
<li>
<strong>小明</strong>
<span>我的欢迎光临哦!</span>
</li>
<li>
<strong>傅玉</strong>
<span>心情真爽!</span>
</li>
</ul>
<span class="dialogPractise-fo"></span>
</div>
二、请简化下面的CSS代码:
a)margin:0px;
b)padding:10px 0 10px 0;
c)border-width:1px;border-style:solid;border-color:#ff5500;

考点:CSS的优化
我的答题

margin:0;padding:10px 0;border:1px solid #ff5500;

 

三、请看以下代码,按照下面的要求回答
if(window.addEventListener){
       var fn = function (type,fn,useCapture){
       el.addEventListener(type,fn,useCapture);
        }
}
else if(window.attachEvent){
        fn = function (type,fn){
        el.attachEvent('on'+type,);
        }
}

考点:对事件绑定的深入理解

  • a)以上代码的作用
  • b)以上代码的优点
  • c)以上代码中的问题,如果你有更好的,请把它编写出来

我的答题

  • a)以上代码主要是为HTML元素绑定一个事件,并且兼容IE和DOM标准下的浏览器
  • b)以上代码的优点是做到的了事件绑定的兼容性
  • c)以上代码中fn这个变量是在DOM标准下的浏览器中才会声明,在IE下它将是一个全局变量

我的简单的编写

function bind(el, type, fn, useCapture){
         if (window.addEventListener) {
                  el.addEventListener(type, function(){
                           fn.apply(el, arguments);//始终将this指向DOM
                  }, useCapture);
          }
          else if (window.attachEvent) {
                     el.attachEvent('on' + type, function(){
                     fn.apply(el, arguments);//始终将this指向DOM
                     });
          }
}

var el = document.getElementById('demo');
var test = function(){
        alert(this.nodeName);
}
bind(el, 'click', test);

注意代码中的注释部分。因为在符合DOM标准的浏览器中,addEventListener方法将把this指针指向绑定的函数,而IE中attachEvent方法将始终指向widow对象,为了将this指针始终指向当前绑定事件的DOM,我们必须要使用apply或者call方法来改变函数的作用域。

三、请计算下面变量的值
var a= (Math.PI++);
var b = (Math.PI++);
alert(a);
alert(b);

考点:对javascript中Math对象的深入理解
我没有做出来这道题目,平时都没有怎么研究这个Math对象呢,因为数学很差。

四、注释的代码是否可以实现?如不能实现,请修改
function test(){
         this.name = 'taobao';
         this.waitMes = function (){
         //隔5秒钟执行this.name
         }
}

考点:javascript闭包
我的答题

function test(){
          this.name = 'taobao';
          var waitMes = function (){
          //每隔5秒钟执行this.name
          setTimeout(function (){alert(self.name)},5000);
           }
         return waitMes;
}
var _test = test();
_test();

面试:

TaoBao UED

  1. 说说你做过的项目,以及在项目中遇见的问题
  2. 使用的框架有哪些?以及各个框架之间的区别
  3. 框架中的底层源码是否看过?
  4. 使用YUI框架做过哪些事情?
  5. 喜欢加班吗?(莫非淘宝经常加班)
  6. 你是怎样看待前端开发修bug?
  7. 喜欢写博客吗?
  8. 喜欢逛博客吗?
  9. 说说你最近看一篇博客,是关于什么的?
  10. 什么是WEB标准?
  11. 你有女朋友吗?
  12. 什么是类?什么是实例?

评论列表