1- front-end-Interview-Questions
2- -----------------
3-
4- -本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客):http://segmentfault.com/u/trigkit4 收集整理。
1+ 本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客:http://segmentfault.com/u/trigkit4)收集整理。
52
63前端开发面试知识点大纲:
74------------
@@ -103,6 +100,8 @@ CSS 相关问题
103100
104101 2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border).
105102
103+ ![ 图片描述] [ 1 ]
104+
106105###CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?
107106
108107
@@ -142,36 +141,7 @@ CSS 相关问题
142141 p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。
143142 :enabled :disabled 控制表单控件的禁用状态。
144143 :checked 单选框或复选框被选中。
145- ###css定义的权重
146-
147- 以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值:
148-
149- /*权重为1*/
150- div{
151-
152- }
153- /*权重为10*/
154- .class1{
155-
156- }
157- /*权重为100*/
158- #id1{
159-
160- }
161- /*权重为100+1=101*/
162- #id1 div{
163-
164- }
165- /*权重为10+1=11*/
166- .class1 div{
167-
168- }
169- /*权重为10+10+1=21*/
170- .class1 .class2 div{
171-
172- }
173-
174- 如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现
144+
175145
176146###列出display的值,说明他们的作用。position的值, relative和absolute分别是相对于谁进行定位的?
177147
@@ -577,7 +547,7 @@ js延迟加载的方式有哪些?
577547 jsonp的原理是动态插入script标签
578548
579549
580- 具体参见:[ 详解js跨域问题] [ 1 ]
550+ 具体参见:[ 详解js跨域问题] [ 2 ]
581551
582552
583553documen.write和 innerHTML的区别
@@ -590,7 +560,7 @@ documen.write和 innerHTML的区别
590560.call() 和 .apply() 的区别和作用?
591561-----------------------
592562作用:动态改变某个类的某个方法的运行环境。
593- 区别参见:[ JavaScript学习总结(四)function函数部分] [ 2 ]
563+ 区别参见:[ JavaScript学习总结(四)function函数部分] [ 3 ]
594564
595565哪些操作会造成内存泄漏?
596566------------
@@ -601,12 +571,12 @@ documen.write和 innerHTML的区别
601571 setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
602572 闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
603573
604- 详见:[ 详解js变量、作用域及内存] [ 3 ]
574+ 详见:[ 详解js变量、作用域及内存] [ 4 ]
605575
606576JavaScript中的作用域与变量声明提升?
607577-----------------------
608578
609- 详见:[ 详解JavaScript函数模式] [ 4 ]
579+ 详见:[ 详解JavaScript函数模式] [ 5 ]
610580
611581如何判断当前脚本运行在浏览器还是node环境中?
612582------------------------
@@ -632,7 +602,7 @@ JavaScript中的作用域与变量声明提升?
632602
633603 渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。
634604
635- 详见:[ css学习归纳总结(一)] [ 5 ]
605+ 详见:[ css学习归纳总结(一)] [ 6 ]
636606
637607###WEB应用从服务器主动推送Data到客户端有那些方式?
638608
@@ -685,7 +655,7 @@ JavaScript中的作用域与变量声明提升?
685655你有哪些性能优化的方法?
686656------------
687657
688- ([ 详情请看雅虎14条性能优化原则] [ 6 ] )。
658+ ([ 详情请看雅虎14条性能优化原则] [ 7 ] )。
689659
690660 (1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。
691661
@@ -715,13 +685,18 @@ http状态码有那些?分别代表是什么意思?
715685一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
716686----------------------------------
717687
718- 分为4个步骤:
719- (1),当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。
720- (2), 浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。
721- (3),一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。
722- (4),此时,Web服务器提供资源服务,客户端开始下载资源。
688+
689+
690+ 分为4个步骤:
691+ (1),当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。
692+ (2), 浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。
693+ (3),一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。
694+ (4),此时,Web服务器提供资源服务,客户端开始下载资源。
695+
696+ 请求返回后,便进入了我们关注的前端模块
697+ 简单来说,浏览器会解析HTML生成DOM Tree,其次会根据CSS生成CSS Rule Tree,而javascript又可以根据DOM API操作DOM
723698
724- 详情:[ 从输入 URL 到浏览器接收的过程中发生了什么事情?] [ 7 ]
699+ 详情:[ 从输入 URL 到浏览器接收的过程中发生了什么事情?] [ 8 ]
725700
726701平时如何管理你的项目?
727702-----------
@@ -767,7 +742,7 @@ javascript继承的6种方法
767742 5,寄生式继承
768743 6,寄生组合式继承
769744
770- 详情:[ JavaScript继承方式详解] [ 8 ]
745+ 详情:[ JavaScript继承方式详解] [ 9 ]
771746ajax过程
772747------
773748
@@ -783,7 +758,7 @@ ajax过程
783758
784759 (6)使用JavaScript和DOM实现局部刷新.
785760
786- 详情:[ JavaScript学习总结(七)Ajax和Http状态字] [ 9 ]
761+ 详情:[ JavaScript学习总结(七)Ajax和Http状态字] [ 10 ]
787762
788763异步加载和延迟加载
789764---------
@@ -831,7 +806,7 @@ grunt, YUI compressor 和 google clojure用来进行代码压缩的用法。
831806 //压缩CSS
832807 java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css > packed.css
833808
834- 详情请见:[ 你需要掌握的前端代码性能优化工具] [ 10 ]
809+ 详情请见:[ 你需要掌握的前端代码性能优化工具] [ 11 ]
835810
836811Flash、Ajax各自的优缺点,在使用中如何取舍?
837812--------------------------
@@ -938,12 +913,12 @@ GET和POST的区别,何时使用POST?
938913
939914闭包相关问题?
940915-------
941- 详情请见:[ 详解js闭包] [ 11 ]
916+ 详情请见:[ 详解js闭包] [ 12 ]
942917
943918
944919js事件处理程序问题?
945920-----------
946- 详情请见:[ JavaScript学习总结(九)事件详解] [ 12 ]
921+ 详情请见:[ JavaScript学习总结(九)事件详解] [ 13 ]
947922
948923
949924
@@ -1072,7 +1047,7 @@ WEB应用从服务器主动推送Data到客户端有那些方式?
10721047
10731048ajax 是什么?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
10741049--------------------------------------
1075- 详情请见:[ JavaScript学习总结(七)Ajax和Http状态字] [ 13 ]
1050+ 详情请见:[ JavaScript学习总结(七)Ajax和Http状态字] [ 14 ]
10761051
10771052
10781053
@@ -1129,7 +1104,7 @@ js对象的深度克隆
11291104
11301105AMD和CMD 规范的区别?
11311106--------------
1132- 详情请见:[ 详解JavaScript模块化开发] [ 14 ]
1107+ 详情请见:[ 详解JavaScript模块化开发] [ 15 ]
11331108
11341109网站重构的理解?
11351110--------
@@ -1210,23 +1185,111 @@ js数组去重
12101185 }
12111186 return n;
12121187 }
1188+
1189+
1190+ HTTP状态码
1191+ -------
12131192
1193+ 100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
1194+ 200 OK 正常返回信息
1195+ 201 Created 请求成功并且服务器创建了新的资源
1196+ 202 Accepted 服务器已接受请求,但尚未处理
1197+ 301 Moved Permanently 请求的网页已永久移动到新位置。
1198+ 302 Found 临时性重定向。
1199+ 303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
1200+ 304 Not Modified 自从上次请求后,请求的网页未修改过。
1201+
1202+ 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
1203+ 401 Unauthorized 请求未授权。
1204+ 403 Forbidden 禁止访问。
1205+ 404 Not Found 找不到如何与 URI 相匹配的资源。
1206+
1207+ 500 Internal Server Error 最常见的服务器端错误。
1208+ 503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
12141209
1210+ cache-control
1211+ -------------
12151212
1216- > 我的微博:http://weibo.com/hwax1993 ,欢迎关注
1213+ 网页的缓存是由HTTP消息头中的` “Cache-control” ` 来控制的,常见的取值有` private、no-cache、max-age、must-revalidate ` 等,默认为` private ` 。
1214+
1215+ ` Expires ` 头部字段提供一个日期和时间,响应在该日期和时间后被认为失效。允许客户端在这个时间之前不去检查(发请求),等同` max-age ` 的效果。但是如果同时存在,则被` Cache-Control ` 的` max-age ` 覆盖。
1216+
1217+ Expires = "Expires" ":" HTTP-date
1218+
1219+ 例如
1220+
1221+ Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
1222+
1223+ 如果把它设置为` -1 ` ,则表示立即过期
1224+
1225+ ` Expires ` 和` max-age ` 都可以用来指定文档的过期时间,但是二者有一些细微差别
1226+
1227+ 1.Expires在HTTP/1.0中已经定义,Cache-Control:max-age在HTTP/1.1中才有定义,为了向下兼容,仅使用max-age不够;
1228+ 2.Expires指定一个绝对的过期时间(GMT格式),这么做会导致至少2个问题:1)客户端和服务器时间不同步导致Expires的配置出现问题。 2)很容易在配置后忘记具体的过期时间,导致过期来临出现浪涌现象;
1229+
1230+ 3.max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的Request_time(请求时间)
1231+
1232+ 4.Expires指定的时间可以是相对文件的最后访问时间(Atime)或者修改时间(MTime),而max-age相对对的是文档的请求时间(Atime)
1233+
1234+ 如果值为no-cache,那么每次都会访问服务器。如果值为max-age,则在过期之前不会重复访问服务器。
1235+
1236+ js操作获取和设置cookie
1237+ ---------------
1238+
1239+
1240+ //创建cookie
1241+ function setCookie(name, value, expires, path, domain, secure) {
1242+ var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
1243+ if (expires instanceof Date) {
1244+ cookieText += '; expires=' + expires;
1245+ }
1246+ if (path) {
1247+ cookieText += '; expires=' + expires;
1248+ }
1249+ if (domain) {
1250+ cookieText += '; domain=' + domain;
1251+ }
1252+ if (secure) {
1253+ cookieText += '; secure';
1254+ }
1255+ document.cookie = cookieText;
1256+ }
1257+
1258+ //获取cookie
1259+ function getCookie(name) {
1260+ var cookieName = encodeURIComponent(name) + '=';
1261+ var cookieStart = document.cookie.indexOf(cookieName);
1262+ var cookieValue = null;
1263+ if (cookieStart > -1) {
1264+ var cookieEnd = document.cookie.indexOf(';', cookieStart);
1265+ if (cookieEnd == -1) {
1266+ cookieEnd = document.cookie.length;
1267+ }
1268+ cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
1269+ }
1270+ return cookieValue;
1271+ }
1272+
1273+ //删除cookie
1274+ function unsetCookie(name) {
1275+ document.cookie = name + "= ; expires=" + new Date(0);
1276+ }
1277+
1278+
12171279
12181280
1219- [ 1 ] : http://segmentfault.com/blog/trigkit4/1190000000718840
1220- [ 2 ] : http://segmentfault.com/blog/trigkit4/1190000000660786#articleHeader15
1221- [ 3 ] : http://segmentfault.com/blog/trigkit4/1190000000687844
1222- [ 4 ] : http://segmentfault.com/blog/trigkit4/1190000000758184#articleHeader5
1223- [ 5 ] : http://segmentfault.com/blog/trigkit4/1190000000800711#articleHeader30
1224- [ 6 ] : http://segmentfault.com/blog/trigkit4/1190000000656717
1225- [ 7 ] : http://segmentfault.com/blog/trigkit4/1190000000697254
1226- [ 8 ] : http://segmentfault.com/blog/trigkit4/1190000002440502
1227- [ 9 ] : http://segmentfault.com/blog/trigkit4/1190000000691919
1228- [ 10 ] : http://segmentfault.com/blog/trigkit4/1190000002585760
1229- [ 11 ] : http://segmentfault.com/blog/trigkit4/1190000000652891
1230- [ 12 ] : http://segmentfault.com/blog/trigkit4/1190000002174034
1231- [ 13 ] : http://segmentfault.com/blog/trigkit4/1190000000691919
1232- [ 14 ] : http://segmentfault.com/blog/trigkit4/1190000000733959
1281+ [ 1 ] : /img/bVldFY
1282+ [ 2 ] : http://segmentfault.com/blog/trigkit4/1190000000718840
1283+ [ 3 ] : http://segmentfault.com/blog/trigkit4/1190000000660786#articleHeader15
1284+ [ 4 ] : http://segmentfault.com/blog/trigkit4/1190000000687844
1285+ [ 5 ] : http://segmentfault.com/blog/trigkit4/1190000000758184#articleHeader5
1286+ [ 6 ] : http://segmentfault.com/blog/trigkit4/1190000000800711#articleHeader30
1287+ [ 7 ] : http://segmentfault.com/blog/trigkit4/1190000000656717
1288+ [ 8 ] : http://segmentfault.com/blog/trigkit4/1190000000697254
1289+ [ 9 ] : http://segmentfault.com/blog/trigkit4/1190000002440502
1290+ [ 10 ] : http://segmentfault.com/blog/trigkit4/1190000000691919
1291+ [ 11 ] : http://segmentfault.com/blog/trigkit4/1190000002585760
1292+ [ 12 ] : http://segmentfault.com/blog/trigkit4/1190000000652891
1293+ [ 13 ] : http://segmentfault.com/blog/trigkit4/1190000002174034
1294+ [ 14 ] : http://segmentfault.com/blog/trigkit4/1190000000691919
1295+ [ 15 ] : http://segmentfault.com/blog/trigkit4/1190000000733959
0 commit comments