fengchuanyu 1 semana atrás
pai
commit
397d95a67a
3 arquivos alterados com 151 adições e 0 exclusões
  1. 110 0
      8-ES6/6_闭包.html
  2. 30 0
      8-ES6/7_立即执行函数.html
  3. 11 0
      8-ES6/7_解构赋值.html

+ 110 - 0
8-ES6/6_闭包.html

@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <ul>
+        <li>1</li>
+        <li>2</li>
+        <li>3</li>
+        <li>4</li>
+        <li>5</li>
+    </ul>
+    <script>
+        var aLi = document.getElementsByTagName("li");
+
+        for(var i=0;i<aLi.length;i++){
+            // 函数的参数也属于局部变量
+            (function(i){
+                aLi[i].onclick = function(){
+                 console.log(i)
+                }
+            })(i);
+        }
+
+        // for(var i=0;i<aLi.length;i++){
+        //     (function(){
+        //         var val = i;
+        //         aLi[i].onclick = function(){
+        //          console.log(val)
+        //         }
+        //     })();
+        // }
+        // for(var i=0;i<aLi.length;i++){
+        //     function fn(){
+        //         var val = i;
+        //         aLi[i].onclick = function(){
+        //          console.log(val)
+        //         }
+        //     }
+        //     fn();
+        // }
+
+
+
+        // 闭包
+        // 函数嵌套函数 内部函数可以使用外部函数的变量 且外部的局部变量不会释放
+        
+        // function fn(){
+        //     // 局部变量 仅在函数内生效 外部不能访问
+        //     // 在函数内定义的变量为局部变量
+        //     var a = 10;
+        // }
+        // fn();
+        // console.log(a);
+
+
+        // function fn(){
+        //     var a = 1;
+        //     ++a;
+        //     console.log(a);
+        // }
+        // fn();
+        // fn();
+
+
+        // function fn(){
+        //     var a = 1;
+        //     function fn2(){
+        //         a++;
+        //         console.log(a);
+        //     }
+        //     fn2();
+        //     fn2();
+        // }
+        // fn();
+
+
+        // js 有一种垃圾回收机制
+        // 当一个函数执行完毕后 函数内的变量会被销毁
+        // 但是如果函数内嵌套了函数 那么外部函数的变量不会被销毁
+        // 这就是闭包
+
+
+
+
+
+
+        // 定义私有变量 不被别人使用 可以使用闭包
+
+        // function fn(){
+        //     var a = 10;
+        //     function fn2(v){
+        //         a = a+v;
+        //         console.log(a);
+        //     }
+        //     return fn2;
+        // }
+        // var f = fn();
+        // // console.log(f);
+        // f(1);
+        // f(2);
+        // f(10);
+        // console.log(a)
+
+    </script>
+</body>
+</html>

+ 30 - 0
8-ES6/7_立即执行函数.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        // 匿名函数
+        // setTimeout(function(){
+        //     console.log(111)
+        // },1000)
+
+        // oBox.onclick = function(){
+        //     console.log(222)
+        // }
+
+        // var fn = function(){
+        //     console.log(111)
+        // }
+        
+        // fn();
+
+        (function(){
+            console.log("123");
+        })();
+    </script>
+</body>
+</html>

+ 11 - 0
8-ES6/7_解构赋值.html

@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    
+</body>
+</html>