2015阿里前端工程师在线笔试整理

昨天下午参加了阿里前端的笔试,题目是随机的,但好像越到后面题目越难。建议小伙伴们还是尽早参加。

总体来说,题目不算很难,有时间都是可以做出来的,总共11道题,6道单选,3道填空,两道大题吧。一个小时时间略少,加上我本来想直接在上面敲代码的,然后发现太慢了,所以又改成了sumlime。

单选题有一道问无序列表是什么元素,一紧张的我竟然选了<ol>。。。。考完才反应过来的我心都要碎成渣了

最后,有一道大题没写,一道填空和一道大题没写完。在这篇文章中进行完善吧。

1.找出页面中所有宽度和高度大于40的节点。

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 <style>
 7     .oDiv{width: 50px;height: 50px;}
 8     input{width: 100px;height: 50px;}
 9 </style>
10 </head>
11 
12 <body>
13 <input type="text" name="oText">
14 <span name="oSpan">span</span>
15 <div class="oDiv">div</div>
16 <img src="" name="oImg"/>
17     <script language="JavaScript">
18     function reSource(){
19         var ret=[];
20         var obj = document.getElementsByTagName("*");
21         for(var i = 0;i < obj.length; i++){
22             if(obj[i].offsetWidth>40&&obj[i].offsetHeight>40){
23                 ret.push(obj[i].tagName);
24                
25             }
26         }
27         return ret;
28     }
29     console.log(reSource());
30    </script>
31 
32     
33 </body>
34 </html>

挺简单对吧,当时愣是没反应过来。。。

 2.去除单词间的空格,并在单词间留出一个空格。如'aaaa   bbbb    cccc   ddd e f      g'转化为'aaaa bbbb cccc ddd e f g',这考察的是正则表达式的知识,之前一直在逃避学正则,现在看来正则对于前端来说是必备技能了

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8  <script>
 9             var s = 'aaaa   bbbb    cccc   ddd e f      g';
10             var r = /\s+/g;
11             s = s.replace(r, ' ');
12             console.log(s);
13 </script>    
14 </body>
15 </html> 

 3.填空题

var func=function(){
return this.valueOf();
};
func.?

问号那里填什么可以让输出为abc。

有两种方法,一种使用原型

<script>
     var func=function(){
         return this.valueOf();
     };
     console.log(func.prototype="abc");
</script>

或者使用apply()指定作用域

<script>
     var func=function(){
         return this.valueOf();
     };
     console.log(func.apply("abc"));

    </script>
原文地址:https://www.cnblogs.com/HMin/p/4741422.html