【面试季一】若干前端面试题

最近又成了“FreeTecher”,这几天整理完简历,又开始奔波在北京的大街小巷。

跑也不能白跑是不是,So顺便把各个公司的面试题拿出来做一下共享。

答案有自己写的,有网上找的,如有不正确的,请指出,感激不尽~~~

如贵公司的面试题不可以网络公开,请留言,我会尽可能快的将文章下架,Sorry~~~

 【你也晓得啦~找工作阶段杂事比较多,所以下面的题没有完全做完,只是先把题目列出来然后一点点完善啦~~~亲要是着急用,自己去百度谷歌一下哈~~~】

 

一:写出JS中基本数据类型

  ECMAScript中有5种简单数据类型(也称为基本数据类型):Undefined,Null,Boolean,Number和String。还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。【JavaScript高级程序设计第三版第三章】

 

二:将类数组转化为真正的数组,我们一般怎么做,用代码写出

  http://segmentfault.com/a/1190000000415572      

  【为了节约时间。。。嘿嘿】

 

三:

1 var a=[1,2,3,4],i=0;
2 
3   a[i++]=a[i++]*2;
4 
5   console.log(a);

  输出结果是什么?

  a=[4,2,3,4]

  【这道题我家先生看到以后很感兴趣,立即和我打赌了一下,然后两个人讨论了很久。。。】

 

四:

1 var a='1'+2-'1';
2 
3   console.log(a);

  执行结果是什么?

  a=11;

  【这个主要考察隐式转换】

 

五:

1      b();a();
2 
3   var a=function(){console.log("aaa")};
4 
5   function b(){console.log("bbb")};

  上述代码执行会出现什么结果,请简单解释。

  b();==>bbb;

  a();==>报错,因为a在运行的时候尚未定义

  【这部分主要是在考察函数预解释这方面的知识】

 

六:请列出XMLHttpRequest通用属性和方法。

  http://blog.163.com/yang_jianli/blog/static/161990006201042421844222/

 

七:

 1      var name="global";
 2 
 3   var obj={
 4 
 5     name:"obj",
 6 
 7     dose:function(){
 8 
 9       this.name="dose";
10 
11       return function(){return this.name}
12 
13     }
14 
15   };
16 
17   var result=obj.dose().call(this);

  result的值是什么?

  result="global";

  【这里考察的主要是call的作用:改变this指向】

 

八:用JS定义一个animal类,然后实例化它(属性、方法各一个即可);

 1   function Animal(name){
 2 
 3     this.name=name;
 4 
 5     this.skill=function(){ alert("I'm hungry~"); };
 6 
 7   };
 8 
 9   var tiger=new Animal("tiger");
10 
11     console.log(tiger.name);
12 
13     tiger.skill();

  【这里是我自己的理解,当时面试的时候也是这么答的,不确定是否正确,如有大神,请指点一下】  

 

九:简单介绍Css盒子模型;

  http://www.cnblogs.com/sunyunh/archive/2012/09/01/2666841.html

  【盒子模型是我了解的比较好的一个知识点,可用语言表达的总是不咋地,所以每次都是给面试官画图。。。这个姐真会^_^】

 

十:请说明你用到了谷歌哪些调试工具或是API;

  控制台,手机模拟器

  【这里就写自己常用的即可】

 

十一:以下函数的作用是什么?空白区域应该填写什么?  

 1 //定义
 2 
 3   (function(window){
 4 
 5     function fn(str){ this.str=str ;};
 6 
 7     fn.prototype.format=function(){
 8 
 9       var arg=___1___;
10 
11       return this.str.replace(___2__,function(a,b){
12 
13          return arg[b] || "";
14 
15       });
16 
17     };
18 
19     window.fn=fn;
20 
21   })(window);
22 
23   //使用
24 
25   (function(){
26 
27     var t=new fn("<p><a href="{0}">{1}</a><span>{2}</span></p>");
28 
29     console.log(t.format("http://www.cnki.net","Cnki","Welcome"));
30 
31   })();

 

十二:编写一个函数将列表子元素顺序反转;

 1   <ul>
 2 
 3     <li>1</li>
 4 
 5     <li>2</li>
 6 
 7     <li>3</li>
 8 
 9     <li>4</li>
10 
11   </ul>

 

十三:如何判断一个对象是否为函数;   

1 typeof(fn)=="function";

 

十四:完成一个函数,接受数组作为参数,数组元素为整数或数组,数组元素包含整数或数组,函数返回扁平化后的数组;

  如:[1,[2,[[3,4],5],6]]==>[1,2,3,4,5,6];

 

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

1   for(var i=0;i<5;++i){
2 
3     setTimeout(function(){console.log(i+" ")},100);
4 
5   }

 

十六:有一个大数组,var a=["1","2","3"... ...];a的长度是100,内容填充随机整数的字符串,请先构造此函数a,然后设计一个算法将其内容去重;

 

十七:一个页面从输入URL,到页面加载完的过程中都发生了什么事情?越详细越好。

  1输入地址

  2浏览器查找域名的 IP 地址
    这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存...

  3浏览器向 web 服务器发送一个 HTTP 请求

  4服务器的永久重定向响应(从 http://example.com 到 http://www.example.com

  5浏览器跟踪重定向地址

  6服务器处理请求

  7服务器返回一个 HTTP 响应

  8浏览器显示 HTML

  9浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、CSSJS等等)

  10浏览器发送异步请求

  【对于这个问题,我了解大概一个过程,但是并不深入,所以给一个最简单的答案(网络),如果亲有兴趣或是想深入了解,请自行谷歌】

 

posted on 2015-09-09 21:57  欧阳不乖  阅读(931)  评论(1编辑  收藏  举报

导航