Skip to content

Commit 3ca5592

Browse files
committed
增加博客this文档
1 parent c4a321f commit 3ca5592

File tree

7 files changed

+320
-45
lines changed

7 files changed

+320
-45
lines changed

index.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,8 @@ a,span,p{
304304
height: 50px;
305305
float:left;
306306
line-height:50px;
307-
width: 65%;
307+
width: 75%;
308+
overflow: auto;
308309
}
309310
.oneblogContent{
310311
clear: both;

index.html

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ <h3>HTTP知识点总结</h3>
153153
<div class="oneblog">
154154
<div class="titleback">
155155
<div class="titleContainer">
156-
<h3>JavaScript知识点整理1-类型、值/引用复制、强制类型转换</h3>
156+
<h3>JS知识点整理1-类型、值/引用复制、强制类型转换</h3>
157157
<div class="blogdiva"><a href="pages/blogs/jsType.html">点击查看</a></div>
158158
</div>
159159
</div>
@@ -164,7 +164,7 @@ <h3>JavaScript知识点整理1-类型、值/引用复制、强制类型转换</h
164164
<div class="oneblog">
165165
<div class="titleback">
166166
<div class="titleContainer">
167-
<h3>JavaScript知识点整理2—作用域、闭包、模块</h3>
167+
<h3>JS知识点整理2—作用域、闭包、模块</h3>
168168
<div class="blogdiva"><a href="pages/blogs/closure.html">点击查看</a></div>
169169
</div>
170170
</div>
@@ -175,14 +175,25 @@ <h3>JavaScript知识点整理2—作用域、闭包、模块</h3>
175175
<div class="oneblog">
176176
<div class="titleback">
177177
<div class="titleContainer">
178-
<h3>JavaScript知识点整理3—异步、回调、Promise</h3>
178+
<h3>JS知识点整理3—异步、回调、Promise</h3>
179179
<div class="blogdiva"><a href="pages/blogs/asynchronous.html">点击查看</a></div>
180180
</div>
181181
</div>
182182
<p class="oneblogContent">
183183
内容:并发与并行、同步与异步、阻塞与非阻塞、事件循环、JavaScript单线程与异步、回调、Promise
184184
</p>
185185
</div>
186+
<div class="oneblog">
187+
<div class="titleback">
188+
<div class="titleContainer">
189+
<h3>JS知识点整理4—this</h3>
190+
<div class="blogdiva"><a href="pages/blogs/this.html">点击查看</a></div>
191+
</div>
192+
</div>
193+
<p class="oneblogContent">
194+
内容:this的四种绑定规则
195+
</p>
196+
</div>
186197
</div>
187198
<div class="seemore">
188199
<a href="pages/blogall/blogall.html" target="_blank">更多博客</a>

pages/blogs/md/asynchronous.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# 前端知识点整理4—异步、回调、promise
2-
日期:7.26
3-
内容:同步/异步、并发/并行、阻塞/非阻塞、事件循环、promise
41
## 并发与并行
52
- 并发是指两个或多个事件链随时间发展**交替**执行,以至于从更高的层次来看,就像是同时运行(但在任意时刻只处理一个事件)
63
- 并发的关键是你有处理多个任务的能力,不一定同时。
@@ -39,7 +36,7 @@
3936
- **why单线程:**作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的问题。
4037
- **why异步:**我的理解:浏览器应用决定了会有很多网络请求,会有很多不可控的速度因素,浏览器是直接和用户交互,用户交互体验很重要,所以不能阻塞,但同步非阻塞处理起来会很麻烦。所以只能是异步。
4138
- 所有同步任务执行完毕,系统就会循环读取事件队列。
42-
- 阮一峰的链接http://www.ruanyifeng.com/blog/2014/10/event-loop.html
39+
- [阮一峰的链接](http://www.ruanyifeng.com/blog/2014/10/event-loop.html)
4340

4441
### 回调
4542
- 回调是JS中最基础的异步模式

pages/blogs/md/closure.md

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
# 前端知识点整理3—作用域、闭包、模块
2-
日期:7.27
3-
内容:作用域、闭包、模块
4-
51
## 作用域
62
- 作用域:根据名称查找变量的一套规则。
73
- 编译的三个阶段:
@@ -38,25 +34,25 @@ JS引擎在2和3阶段都会进行性能优化,大部分情况下编译发生
3834
- 缺点:由于闭包作用域不会被垃圾回收,内存占用。
3935
- 优点:可以保留外部作用域对一个变量的私有引用;设计私有的方法和变量;避免全局变量的污染;
4036
- 实例:
41-
1)闭包函数作为函数参数传递给setTimeout()
42-
```
37+
1)闭包函数作为函数参数传递给setTimeout()
38+
<pre>
4339
function wait(message) {
4440
setTimeout( function timer(){
4541
console.log( message );
4642
}, 1000 );
4743
}
4844
wait( "Hello, closure!" );
49-
```
45+
</pre>
5046
2)在定时器、事件监听器、Ajax请求、跨窗口通信中,只要使用了回调函数,实际上就是在使用闭包。
51-
```
47+
<pre>
5248
function setupBot(name,selector) {
5349
$( selector ).click( function activator(){
5450
console.log( "Activating: " + name );
5551
} );
5652
}
5753
setupBot( "Closure Bot 1", "#bot_1" );
5854
setupBot( "Closure Bot 2", "#bot_2" );
59-
```
55+
</pre>
6056
- **经典例子**
6157
1)
6258
```
@@ -72,7 +68,7 @@ i\*1000是每次都会计算,即1000,2000,3000,4000,5000
7268
备注:如果setTimeout()函数中,i\*1000改为0,则结果为同时输出6,6,6,6,6
7369
问题:这里只有一个闭包作用域,如果要打印出1,2,3,4,5得要这5个延迟函数,分别引用不同的i,也就是不同的作用域。所以需要创建不同的作用域。
7470
**改写方式1**:立即执行函数能创建作用域
75-
```
71+
<pre>
7672
for (var i=1; i<=5; i++) {
7773
(function(){
7874
var j = i;
@@ -81,41 +77,41 @@ for (var i=1; i<=5; i++) {
8177
}, j*1000 );
8278
})();
8379
}
84-
```
80+
</pre>
8581
或者
86-
```
82+
<pre>
8783
for (var i=1; i<=5; i++) {
8884
(function(j){
8985
setTimeout( function timer(){
9086
console.log( j );
9187
}, j*1000 );
9288
})( i );
9389
}
94-
```
90+
</pre>
9591
输出:每秒一次的频率输出0,1,2,3,4,5
9692
**改写方式2**:let可劫持块作用域
97-
```
93+
<pre>
9894
for (var i=1; i<=5; i++) {
9995
let j = i; // 闭包的块作用域
10096
setTimeout( function timer(){
10197
console.log( j );
10298
}, j*1000 );
10399
}
104-
```
100+
</pre>
105101
或者:for(let=i; ;)每次迭代都会产生新的let块作用域
106-
```
102+
<pre>
107103
for (let i=1; i<=5; i++) {
108104
setTimeout( function timer(){
109105
console.log( i );
110106
}, i*1000 );
111107
}
112-
```
108+
</pre>
113109
输出:每秒一次的频率输出0,1,2,3,4,5
114110
相关链接:
115-
[闭包面试题](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651552304&idx=2&sn=6abd16cf650f64cdcc12abfbb6231cbc&chksm=8025adf1b75224e789d21d12750949d3d4e9428b7f5add79aab6945c7d98cf1549da17a2b337&mpshare=1&scene=23&srcid=0729WeoziBvRKNSgKvHuBd9a#rd)
116-
**相关知识**
111+
[闭包面试题](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651552304&idx=2&sn=6abd16cf650f64cdcc12abfbb6231cbc&chksm=8025adf1b75224e789d21d12750949d3d4e9428b7f5add79aab6945c7d98cf1549da17a2b337&mpshare=1&scene=23&srcid=0729WeoziBvRKNSgKvHuBd9a#rd)
112+
**相关知识**
117113
1.普通函数:
118-
```
114+
<pre>
119115
function compare(value1,value2){
120116
if(value1 < value2){
121117
return -1;
@@ -126,11 +122,11 @@ function compare(value1,value2){
126122
}
127123
}
128124
var result = compare(5,10);
129-
```
130-
![函数执行时的作用域链](http://upload-images.jianshu.io/upload_images/7008018-e2bf0b3e455a59de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
131-
解释:在创建/声明compare()函数时,会创建一个预先包含全局变量对象的作用域链;当执行函数/函数被调用时,会创建一个执行环境及相应的作用域链,并且创建本地活动对象,并将其推入作用链前端;当compare()函数执行完毕后,执行环境的作用域链被销毁,compare()的活动对象已没用(标记清除或引用计数),最后被垃圾回收。
132-
2.闭包函数
133-
```
125+
</pre>
126+
![函数执行时的作用域链](http://upload-images.jianshu.io/upload_images/7008018-e2bf0b3e455a59de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
127+
解释:在创建/声明compare()函数时,会创建一个预先包含全局变量对象的作用域链;当执行函数/函数被调用时,会创建一个执行环境及相应的作用域链,并且创建本地活动对象,并将其推入作用链前端;当compare()函数执行完毕后,执行环境的作用域链被销毁,compare()的活动对象已没用(标记清除或引用计数),最后被垃圾回收。
128+
2.闭包函数
129+
<pre>
134130
function createComparisonFunction(propertyName){
135131
return function(object1,object2){
136132
var value1 = object1[propertyName];
@@ -147,15 +143,15 @@ function createComparisonFunction(propertyName){
147143
var compareNames = createComparisonFunction("name");
148144
var result = compareNames({name:"Nicholas"},{name:"Greg"});
149145
compareNames = null; // 解除引用
150-
```
146+
</pre>
151147

152-
![闭包函数执行时的作用域链](http://upload-images.jianshu.io/upload_images/7008018-0eb9b6b8c5728346.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
153-
解释:当createComparisonFunction()函数执行完毕后,其执行环境的作用链被销毁,但是其活动对象依然被保留在内存中,还存在引用。直到匿名函数被销毁后,createComparisonFunction()的活动对象才会被销毁。
148+
![闭包函数执行时的作用域链](http://upload-images.jianshu.io/upload_images/7008018-0eb9b6b8c5728346.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
149+
解释:当createComparisonFunction()函数执行完毕后,其执行环境的作用链被销毁,但是其活动对象依然被保留在内存中,还存在引用。直到匿名函数被销毁后,createComparisonFunction()的活动对象才会被销毁。
154150

155151

156152
## 模块
157153
- 模块函数内:声明私有变量和内部函数;内部函数可访问私有变量;返回对象,其属性为内部函数。
158-
```
154+
<pre>
159155
function CoolModule() {
160156
var something = "cool";
161157
var another = [1, 2, 3];
@@ -176,11 +172,11 @@ function CoolModule() {
176172
var foo = CoolModule();
177173
foo.doSomething(); // cool
178174
foo.doAnother(); // 1 ! 2 ! 3
179-
```
180-
备注:模块函数也可直接返回内部函数,例如jQuery中的$标识符就是jQuery模块的公共API。
181-
- **单例模式**
182-
当只需要一个实例时
183-
```
175+
</pre>
176+
备注:模块函数也可直接返回内部函数,例如jQuery中的$标识符就是jQuery模块的公共API。
177+
- **单例模式**
178+
当只需要一个实例时
179+
<pre>
184180
var foo = (function CoolModule() {
185181
var something = "cool";
186182
var another = [1, 2, 3];
@@ -201,5 +197,5 @@ var foo = (function CoolModule() {
201197

202198
foo.doSomething(); // cool
203199
foo.doAnother(); // 1 ! 2 ! 3
204-
```
200+
</pre>
205201
备注:将模块函数,改为立即执行函数。

pages/blogs/md/jsType.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ a.valueOf();\\"abc"
2020
### 数组
2121
- 数组可容纳任何类型的值,通常通过数字进行索引,但也可包含字符串键值和属性
2222
- 最好使用对象存储键值/属性值,用数组存放数字索引值(内部优化)
23-
- 其中splice,pop/push,reverse,shift/unshift,sort会改变原始数组;
24-
而contact,slice不会改变原始数组,返回的是一个新的数组副本。
23+
- 其中splice,pop/push,reverse,shift/unshift,sort会改变原始数组;
24+
而contact,slice不会改变原始数组,返回的是一个新的数组副本。
2525
![Array对象方法](http://upload-images.jianshu.io/upload_images/7008018-87776ef414703195.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2626

2727

0 commit comments

Comments
 (0)