最近又成了“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
中的资源(如图片、音频、视频、CSS
、JS
等等)
10浏览器发送异步请求
【对于这个问题,我了解大概一个过程,但是并不深入,所以给一个最简单的答案(网络),如果亲有兴趣或是想深入了解,请自行谷歌】