File tree Expand file tree Collapse file tree 1 file changed +66
-0
lines changed
Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Original file line number Diff line number Diff line change 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 });
478480fn2 (' 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小程序
You can’t perform that action at this time.
0 commit comments