Skip to content

Commit f5a1b60

Browse files
committed
update
1 parent c7d1d87 commit f5a1b60

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
* [01-08](https://github.com/TYRMars/JSlearn#01-08) `知识点小结 & 解决问题`
1313
* [02-01](https://github.com/TYRMars/JSlearn#02-01) `作用域和闭包-执行上下文`
1414
* [02-02](https://github.com/TYRMars/JSlearn#02-01) `作用域和闭包-this`
15+
* [02-03](https://github.com/TYRMars/JSlearn#02-03) `作用域和闭包-作用域`
16+
* [02-04](https://github.com/TYRMars/JSlearn#02-04) `作用域和闭包-闭包`
1517

1618

1719
## JS小练习
@@ -477,6 +479,70 @@ var fn2 = function fn2(name) {
477479
}.bind({y:200});
478480
fn2('zhangsan',20);
479481
```
482+
483+
## 02-03
484+
### 作用域和闭包-作用域
485+
#### 作用域
486+
* 没有块级作用域
487+
* 只有函数和全局作用域
488+
```JavaScript
489+
//无块级作用域
490+
if(true){
491+
var name = 'zhangsan';
492+
}
493+
console.log(name);
494+
495+
//函数和全局作用域
496+
var a = 100;
497+
function fn() {
498+
var a = 200;
499+
console.log('fn',a);
500+
}
501+
console.log('global',a);
502+
fn();
503+
```
504+
* 作用域链
505+
```JavaScript
506+
var a = 100;
507+
function fn() {
508+
var b = 200;
509+
510+
//但钱作用域没有定义变量,即“自由变量”
511+
console.log(a);
512+
console.log(b);
513+
}
514+
fn();
515+
516+
var a = 100;
517+
function F1() {
518+
var b = 200;
519+
function F2() {
520+
var c = 300;
521+
console.log(a);//a是自由变量。形成一个链式结构,向父级去查找
522+
console.log(b);//b是自由变量
523+
console.log(c);//
524+
}
525+
}
526+
```
527+
528+
## 02-04
529+
### 作用域和闭包-闭包
530+
```JavaScript
531+
function F1() {
532+
var a = 100;
533+
//返回一个函数(函数作为返回值)
534+
return function () {
535+
console.log(a);//自由变量,父作用域中查找
536+
}
537+
}
538+
//f1得到一个函数
539+
var f1 = F1();
540+
var a = 200;
541+
f1();
542+
```
543+
* 函数作为返回值
544+
* 函数作为参数传递
545+
480546
---
481547

482548
### JSDemo JS小程序

0 commit comments

Comments
 (0)