From 5e5b7dba495b22442a97af8406d1fea611ff6ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?09=E9=99=88=E7=83=BD=E6=9D=B0sql=E8=BF=9B=E9=98=B6?= <3241892760@qq.com> Date: Wed, 26 Oct 2022 12:34:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...24\344\275\234\347\224\250\345\237\237.md" | 92 +++++++++++++++++++ .../10.25\351\227\255\345\214\205.md" | 48 ++++++++++ ...24\344\275\234\347\224\250\345\237\237.md" | 62 +++++++++++++ .../10.25\351\227\255\345\214\205.md" | 61 ++++++++++++ 4 files changed, 263 insertions(+) create mode 100644 "09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.24\344\275\234\347\224\250\345\237\237.md" create mode 100644 "09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.25\351\227\255\345\214\205.md" create mode 100644 "09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.24\344\275\234\347\224\250\345\237\237.md" create mode 100644 "09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.25\351\227\255\345\214\205.md" diff --git "a/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.24\344\275\234\347\224\250\345\237\237.md" "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.24\344\275\234\347\224\250\345\237\237.md" new file mode 100644 index 0000000..d42e750 --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.24\344\275\234\347\224\250\345\237\237.md" @@ -0,0 +1,92 @@ +``` +xxxxxxxxxx function a(){   function b(){       var b = 2;   }   var a = 1;   b();}var c = 3;a();//函数全部执行完时依次往销毁内部AO直到全局执行上下文GO,GO在浏览器关闭的那一刻销毁 +``` diff --git "a/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.25\351\227\255\345\214\205.md" "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.25\351\227\255\345\214\205.md" new file mode 100644 index 0000000..6542a32 --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.25\351\227\255\345\214\205.md" @@ -0,0 +1,48 @@ +- + +- ``` + + ``` diff --git "a/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.24\344\275\234\347\224\250\345\237\237.md" "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.24\344\275\234\347\224\250\345\237\237.md" new file mode 100644 index 0000000..94e9204 --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.24\344\275\234\347\224\250\345\237\237.md" @@ -0,0 +1,62 @@ +### 作用域 + +###### **在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。** + +JavaScript 函数作用域: 作用域在函数内修改。 + +------ + +## JavaScript 局部作用域 + +变量在函数内声明,变量为局部变量,具有局部作用域。 + +局部变量:只能在函数内部访问。 + +因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。 + +局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。 + +function outer(){ + function inner(){ + var b = 23; + } + var a = 12; + b(); +} +var global = 100; +a(); + +## 作用域链 + +相当于一个集合,这个集合里面包含着变量对象和所有父级变量对象 + +``` +function bs() { + var b='书包里面的书本'; + return function () { + console.log(b);//没有变量b往bs的作用域变量中找 + } +} +var ba=bs();//返回匿名函数 +ba();//真正执行 +``` + +### **查找变量的流程** + +1. 现在当前作用域的**变量对象**中查找,若无 +2. 沿着作用域链的数组去上级作用域的变量中查找 + +**示例**: + +``` +function a(){ + function b(){ + var b = 2; + } + var a = 1; + b(); +} +var c = 3; +a(); +//函数全部执行完时依次往销毁内部AO直到全局执行上下文GO,GO在浏览器关闭的那一刻销毁 +``` diff --git "a/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.25\351\227\255\345\214\205.md" "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.25\351\227\255\345\214\205.md" new file mode 100644 index 0000000..6d60ae4 --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.25\351\227\255\345\214\205.md" @@ -0,0 +1,61 @@ +## 闭包 + +##### 一、闭包的概念 + +如果一个函数访问了此函数的父级及父级以上的作用域变量,那么这个函数就是一个闭包。 + +##### 二、为什么要闭包 + +1. 使外部得以访问函数内部的变量; +2. 避免全局变量的使用,防止全局变量污染(匿名函数); +3. 让某些关键变量得以常驻内存,免于被回收销毁(闭包函数); + +##### 三、立即执行函数 + +立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行。 + +作用: + +- 页面加载完成后只执行一次的设置函数。 +- 将设置函数中的变量包裹在局部作用域中,不会泄露成全局变量 + +例: + +``` +