From 97cfb9972dd0c7433785da51521229f0d546a7d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E6=B2=BB=E5=85=88?= <1930069369@qq.com> Date: Mon, 31 Oct 2022 04:08:58 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E7=AC=AC=E5=85=AB=E6=AC=A1=E7=AC=94?= =?UTF-8?q?=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 廖治先 <1930069369@qq.com> --- ...256\260\351\242\204\347\274\226\350\257\221.md" | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 "07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-28\347\254\224\350\256\260\351\242\204\347\274\226\350\257\221.md" diff --git "a/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-28\347\254\224\350\256\260\351\242\204\347\274\226\350\257\221.md" "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-28\347\254\224\350\256\260\351\242\204\347\274\226\350\257\221.md" new file mode 100644 index 0000000..4c4e503 --- /dev/null +++ "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-28\347\254\224\350\256\260\351\242\204\347\274\226\350\257\221.md" @@ -0,0 +1,14 @@ +​ var:如果在,块级 --> 全局变量 局部作用域(function)-->局部变量 + +​ let:不管在哪,都是局部 + +​ 没有任何声明 a=5,不管在哪,都是全局 + + + +预编译:(function)AO + +1. 开始预编译 查找声明的变量和方法 + 1.1 首先会赋值为undefined (找形参和变量声明,值赋予undefined) + 1.2 查找函数声明 (将形参与实参的值统一 ) ——GO中没有这一步 + 1.3 给函数体赋值 (找函数声明,值赋予函数体) -- Gitee From aed6a31ec5e767017155c3b8c561a56102be764c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E6=B2=BB=E5=85=88?= <1930069369@qq.com> Date: Tue, 1 Nov 2022 14:54:36 +0000 Subject: [PATCH 2/4] =?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 Signed-off-by: 廖治先 <1930069369@qq.com> --- ...24\350\256\260\351\227\255\345\214\205.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" diff --git "a/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" "b/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" new file mode 100644 index 0000000..16c2a99 --- /dev/null +++ "b/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" @@ -0,0 +1,64 @@ +一、变量的作用域: + +函数内部可以直接读取全局变量。 + +var n=999; + +function f1(){ +alert(n); +} + +f1(); // 999 + +在函数外部无法读取函数内的局部变量 + +function f1(){ +var n=999; +} + +alert(n); // error + +这里有一个地方需要注意, 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! + +function f1(){ +n=999; + +} + +f1(); + +alert(n); // 999 + +二、如何从外部读取局部变量 + +只有通过变通方法才能实现从外部读取局部变量。那就是在函数的内部,再定义一个函数。 + +function f1(){ + +var n=999; + +function f2(){ +alert(n); // 999 +} + +} + +在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。父对象的所有变量,对子对象都是可见的,反之则不成立。 + +既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们不就可以在f1外部读取它的内部变量了吗! + +function f1(){ + +var n=999; + +function f2(){ +alert(n); +} + +return f2; + +} + +var result=f1(); + +result(); // 999 \ No newline at end of file -- Gitee From 31ba0d340a319296e53d51d1bee302daddb900f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E6=B2=BB=E5=85=88?= <1930069369@qq.com> Date: Tue, 1 Nov 2022 14:55:04 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=2007?= =?UTF-8?q?=20=E5=BB=96=E6=B2=BB=E5=85=88/2022-10-31=E7=AC=94=E8=AE=B0?= =?UTF-8?q?=E9=97=AD=E5=8C=85.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...24\350\256\260\351\227\255\345\214\205.md" | 64 ------------------- 1 file changed, 64 deletions(-) delete mode 100644 "07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" diff --git "a/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" "b/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" deleted file mode 100644 index 16c2a99..0000000 --- "a/07 \345\273\226\346\262\273\345\205\210/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" +++ /dev/null @@ -1,64 +0,0 @@ -一、变量的作用域: - -函数内部可以直接读取全局变量。 - -var n=999; - -function f1(){ -alert(n); -} - -f1(); // 999 - -在函数外部无法读取函数内的局部变量 - -function f1(){ -var n=999; -} - -alert(n); // error - -这里有一个地方需要注意, 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! - -function f1(){ -n=999; - -} - -f1(); - -alert(n); // 999 - -二、如何从外部读取局部变量 - -只有通过变通方法才能实现从外部读取局部变量。那就是在函数的内部,再定义一个函数。 - -function f1(){ - -var n=999; - -function f2(){ -alert(n); // 999 -} - -} - -在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。父对象的所有变量,对子对象都是可见的,反之则不成立。 - -既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们不就可以在f1外部读取它的内部变量了吗! - -function f1(){ - -var n=999; - -function f2(){ -alert(n); -} - -return f2; - -} - -var result=f1(); - -result(); // 999 \ No newline at end of file -- Gitee From b84d93a9aca0f7b3216b00af92630c30a3104216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E6=B2=BB=E5=85=88?= <1930069369@qq.com> Date: Tue, 1 Nov 2022 14:55:18 +0000 Subject: [PATCH 4/4] =?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 Signed-off-by: 廖治先 <1930069369@qq.com> --- ...24\350\256\260\351\227\255\345\214\205.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" diff --git "a/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" new file mode 100644 index 0000000..16c2a99 --- /dev/null +++ "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-31\347\254\224\350\256\260\351\227\255\345\214\205.md" @@ -0,0 +1,64 @@ +一、变量的作用域: + +函数内部可以直接读取全局变量。 + +var n=999; + +function f1(){ +alert(n); +} + +f1(); // 999 + +在函数外部无法读取函数内的局部变量 + +function f1(){ +var n=999; +} + +alert(n); // error + +这里有一个地方需要注意, 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! + +function f1(){ +n=999; + +} + +f1(); + +alert(n); // 999 + +二、如何从外部读取局部变量 + +只有通过变通方法才能实现从外部读取局部变量。那就是在函数的内部,再定义一个函数。 + +function f1(){ + +var n=999; + +function f2(){ +alert(n); // 999 +} + +} + +在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。父对象的所有变量,对子对象都是可见的,反之则不成立。 + +既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们不就可以在f1外部读取它的内部变量了吗! + +function f1(){ + +var n=999; + +function f2(){ +alert(n); +} + +return f2; + +} + +var result=f1(); + +result(); // 999 \ No newline at end of file -- Gitee