开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2015.07.11
本文总结了一些常见前端面试(多数源于网络),希望阅后也要用心钻研其中的原理,重要知识需要系统学习,透彻学习,形成自己的知识链。
另外:
资料刚刚收集,覆盖面比较广,包括了web端、移动端的知识点,根据你自己的需要选择性阅读即可。
再次提一下:看或背面试题不像学校考试,死记硬背是没什么用的,看面试题是对理论知识的总结让自己表达的时候知道怎么说。
答案有些不够正确和全面,问题问的不够好,欢迎补充你所知道的答案、技巧、题目;最好是现在网上找不到的。
格式不断修改更新中。
1.Doctype作用严格模式与混杂模式-如何触发这两种模式,区分它们有何意义
(1)CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,比如div默认display属性值为“block”,成为“块级”元素;span默认display属性值为“inline”,是“行内”元素。(2)行内元素有:abspanimginputselectstrong(强调的语气)块级元素有:divulollidldtddh1h2h3h4…p(3)知名的空元素:
19.position跟display、margincollapse、overflow、float这些特性相互叠加后会怎么样?
20.对BFC规范的理解?(W3CCSS2.1规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。)
21.iframe有那些缺点?
*iframe会阻塞主页面的Onload事件;*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以可以绕开以上两个问题。22.css定义的权重
以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值:/*权重为1*/div{}/*权重为10*/.class1{}/*权重为100*/#id1{}/*权重为100+1=101*/#id1div{}/*权重为10+1=11*/.class1div{}/*权重为10+10+1=21*/.class1.class2div{}如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现23.eval是做什么的?
它的功能是把对应的字符串解析成JS代码并运行;避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。23.写一个通用的事件侦听器函数
*网站重构:应用web标准进行设计(第2版)25.什么叫优雅降级和渐进增强?
优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效.渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。26.Node.js的适用场景
高并发、聊天、实时消息推送27.WEB应用从服务器主动推送Data到客户端有那些方式?
functionPerson(name,age){this.name=name;this.age=age;this.sing=function(){alert(this.name)}}2.谈谈This对象的理解。
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。this一般情况下:是全局对象Global。作为方法调用,那么this就是指这个对象3.事件、IE与火狐的事件机制有什么区别?如何阻止冒泡?
1.我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被JavaScript侦测到的行为。2.事件处理机制:IE是事件冒泡、火狐是事件捕获;3.ev.stopPropagation();4.什么是闭包(closure),为什么要用?
5.如何判断一个对象是否属于某个类?
使用instanceof(待完善)
if(ainstanceofPerson){alert('yes');}6.new操作符具体干了什么呢
1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。2、属性和方法被加入到this引用的对象中。3、新创建的对象由this所引用,并且最后隐式的返回this。varobj={};obj.__proto__=Base.prototype;Base.call(obj);7.JSON的了解
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单,易于读写,占用带宽小{'age':'12','name':'back'}8.js延迟加载的方式有哪些
9.ajax是什么ajax的交互模型同步和异步的区别如何解决跨域问题
10.模块化怎么做?
varmodule1=(function(){var_count=0;varm1=function(){//...};varm2=function(){//...};return{m1:m1,m2:m2};})();11.对Node的优点和缺点提出了自己的看法:
*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。12.异步加载的方式
(1)defer,只支持IE(2)async:(3)创建script,插入到DOM中,加载完毕后callBackdocumen.write和innerHTML的区别document.write只能重绘整个页面innerHTML可以重绘页面的一部分13.告诉我答案是多少?
(function(x){deletex;alert(x);})(1+5);函数参数无法delete删除,delete只能删除通过forin访问的属性。当然,删除失败也不会报错,所以代码运行会弹出“1”。14.JS中的call()和apply()方法的区别?
例子中用add来替换sub,add.call(sub,3,1)==add(3,1),所以运行结果为:alert(4);
注意:js中的函数其实是对象,函数名是对Function对象的引用。
functionadd(a,b){alert(a+b);}functionsub(a,b){alert(a-b);}add.call(sub,3,1);15.Jquery与jQueryUI有啥区别?
*jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。*jQueryUI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等16.jquery中如何将数组转化为json字符串,然后再转化回来?
jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:
100-199用于指定客户端应相应的某些动作。200-299用于表示请求成功。300-399用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。400-499用于指出客户端的错误。4001、语义有误,当前请求无法被服务器理解。401当前请求需要用户验证403服务器已经理解请求,但是拒绝执行它。500-599用于支持服务器错误。503–服务不可用一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
你所知道的页面性能优化方法有那些?
除了前端以外还了解什么其它技术么?你最最厉害的技能是什么?
AMD(Modules/Asynchronous-Definition)、CMD(CommonModuleDefinition)规范区别?
18.谈谈你认为怎样做能是项目做的更好?
19.你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
20.加班的看法
加班就像借钱,原则应当是------救急不救穷21.平时如何管理你的项目,如何设计突发大规模并发架构?
Node.js、Mongodb、npmM、MVVM、MEAN24.你有了解我们公司吗?说说你的认识?
因为我想去阿里,所以我针对阿里的说最羡慕就是在双十一购物节,350.19亿元,每分钟支付79万笔。海量数据,居然无一漏单、无一故障。太厉害了。25.移动端(比如:AndroidIOS)怎么做好用户体验
作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点有: