Skip to content

Commit ce97fce

Browse files
committed
Update README.md
1 parent 457ea92 commit ce97fce

File tree

1 file changed

+131
-68
lines changed

1 file changed

+131
-68
lines changed

README.md

Lines changed: 131 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
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

583553
documen.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

606576
JavaScript中的作用域与变量声明提升?
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]
771746
ajax过程
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

836811
Flash、Ajax各自的优缺点,在使用中如何取舍?
837812
--------------------------
@@ -938,12 +913,12 @@ GET和POST的区别,何时使用POST?
938913

939914
闭包相关问题?
940915
-------
941-
详情请见:[详解js闭包][11]
916+
详情请见:[详解js闭包][12]
942917

943918

944919
js事件处理程序问题?
945920
-----------
946-
详情请见:[JavaScript学习总结(九)事件详解][12]
921+
详情请见:[JavaScript学习总结(九)事件详解][13]
947922

948923

949924

@@ -1072,7 +1047,7 @@ WEB应用从服务器主动推送Data到客户端有那些方式?
10721047

10731048
ajax 是什么?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
10741049
--------------------------------------
1075-
详情请见:[JavaScript学习总结(七)Ajax和Http状态字][13]
1050+
详情请见:[JavaScript学习总结(七)Ajax和Http状态字][14]
10761051

10771052

10781053

@@ -1129,7 +1104,7 @@ js对象的深度克隆
11291104

11301105
AMD和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

Comments
 (0)