From 8498f94b0c8a17cdc9b067d67a2f52362f2b26a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E5=BB=BA=E9=94=8B?= <467466356@qq.com> Date: Mon, 31 Oct 2022 12:06:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=AC=AC=E4=B9=9D=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-10-27\347\254\224\350\256\260.md" | 4 +- .../\347\254\224\350\256\260.md" | 47 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 "39\351\231\206\345\273\272\351\224\213/2022-10-28\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232\351\242\204\347\274\226\350\257\221/\347\254\224\350\256\260.md" diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-10-27\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232\350\275\254\345\257\271\350\261\241/2022-10-27\347\254\224\350\256\260.md" "b/39\351\231\206\345\273\272\351\224\213/2022-10-27\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232\350\275\254\345\257\271\350\261\241/2022-10-27\347\254\224\350\256\260.md" index c288d9a..e830efa 100644 --- "a/39\351\231\206\345\273\272\351\224\213/2022-10-27\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232\350\275\254\345\257\271\350\261\241/2022-10-27\347\254\224\350\256\260.md" +++ "b/39\351\231\206\345\273\272\351\224\213/2022-10-27\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232\350\275\254\345\257\271\350\261\241/2022-10-27\347\254\224\350\256\260.md" @@ -72,7 +72,9 @@ } 对象转map - + const aa = new Map() + Object.keys(obj).forEach( e => aa.set(e,obj.e)) + console.log(aa); diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-10-28\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232\351\242\204\347\274\226\350\257\221/\347\254\224\350\256\260.md" "b/39\351\231\206\345\273\272\351\224\213/2022-10-28\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232\351\242\204\347\274\226\350\257\221/\347\254\224\350\256\260.md" new file mode 100644 index 0000000..b91aed0 --- /dev/null +++ "b/39\351\231\206\345\273\272\351\224\213/2022-10-28\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232\351\242\204\347\274\226\350\257\221/\347\254\224\350\256\260.md" @@ -0,0 +1,47 @@ + 作用域 + var:如果在全局,块级 --》 全局变量 局部作用域(function)-->局部变量 + let:不管在哪,都是局部 + 没有任何声明 a=5,不管在哪,都是全局 + + JS(单线程): + 扫描全局:看有没有语法错误 + 预编译(变量提升): + AO: + 1.创建一个AO(activation object)对象:临时存储容器 + 2.往AO装形参,值赋为undefined AO={a:undefined, b:undefined} + 2.1找变量声明,值也赋为undefined AO={a:undefined, b:undefined,c:undefined} + 3.将形参与实参的值统一 AO=AO={a:1, b:2,c:undefined} + 4.找函数声明,值赋予函数体AO={a:f a(){}, b:2,c:f c(){}} + 执行一句,解释一句 + 例: + function fn(a,b) { + console.log(a); // + function a(){} + var a = 5; + console.log(a); + console.log(c); // + var c = 3; + function c(){} + console.log(c); // + } + fn(1,2 + + GO: + 创建GO(Global Object)对象; + 寻找变量声明作为GO的属性名,并赋值为undefined; + 寻找函数声明,放入作为GO的属性,并赋值为其函数体。 + 谁先执行:GO={} AO={} + GO:文件执行之前 + AO:执行函数的前一刻 + GO={global:100, fn:f fn(){}} + global = 100; + //AO={global:300} + function fn() { + console.log(global); //undefined + global = 200; + console.log(global); //200 + var global = 300; + } + fn(); + console.log(global); //100 + var global; -- Gitee From 3bc0911f12b28b157f774c0da99c2058bce1ad40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E5=BB=BA=E9=94=8B?= <467466356@qq.com> Date: Tue, 1 Nov 2022 21:59:32 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\224\350\256\260.html" | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 "39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" "b/39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" new file mode 100644 index 0000000..05f2a4e --- /dev/null +++ "b/39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" @@ -0,0 +1,42 @@ +作用域,作用域链 GO={a, outer} +最里面的先自动销毁 +执行期上下文: + 当函数执行前,会创建一个称为执行期上下文的内部对象(AO)。一个执行期上下文定义了一个函数执行时的环境, +函数每次执行时对应的执行上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行上下文,当函数执行元毕, +它所产生的执行上下文被销毁。 +查找变量:从作用域链的顶端依次向下查找。 + function outer() { + //oAO={a:undefined, inner:f inner(){}} + function inner() { + //iAO={b} + var b = 23; + console.log(a); + } + var a = 12; + inner(); + } + var a = 100; + outer(); + + + 闭包 + 闭包作用: + 实现公有变量 + 可以做缓存(存储结构) + 可以实现封装(继承) + 模块化开发,防止污染全局变量, +闭包缺点:当函数保存在外部时,将会生成闭包,闭包会导致原有作用域链不释放,从而造成内存泄漏。 + 例: + function a() { + var aa = '这是外层函数'; + // console.log(aa); + function b() { + // var bb = '这是中层函数'; + console.log(aa); + } + return b; + } + //a(); + // console.log(aa); + var fun = a(); + fun(); \ No newline at end of file -- Gitee From ccdb0eb2556a5e8712d17ef818c53605174e8e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E5=BB=BA=E9=94=8B?= <467466356@qq.com> Date: Tue, 1 Nov 2022 22:01:42 +0800 Subject: [PATCH 3/3] =?UTF-8?q?2022-10-31=E7=AC=AC=E5=8D=81=E6=AC=A1?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\224\350\256\260.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" => "39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.md" (100%) diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" "b/39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.md" similarity index 100% rename from "39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.html" rename to "39\351\231\206\345\273\272\351\224\213/2022-10-31\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232\351\227\255\345\214\205/\347\254\224\350\256\260.md" -- Gitee