使用var不在乎作用域,
使用let只在当前作用域有效
1 // 函数定义阶段 2 // 1 - 开辟一个空间地址 3 // 2 - 把函数体内所有的东西都当成 字符串 存储在这个空间内 4 // 3 - 是把空间地址赋值给变量名 5 6 // 函数执行阶段 7 // 1 - 按照变量名的地址找到对应的函数空间 8 // 2 - 形参赋值 9 // 3 - 预解释 10 // 4 - 代码从上倒下的执行 11 12 // var arr = []; 13 // for (var i = 0; i < 3; i++) { 14 // // console.log(arr[i]); 15 // // var item = arr[i]; 16 // arr[i] = function(){ 17 // console.log(i) 18 // }; 19 // } 20 // 21 // { 22 // var i = 3; 23 // function fn1 (){ 24 // console.log(i) 25 // } 26 // arr[0] = fn1 27 // } 28 // { 29 // var i = 3; 30 // function fn2 (){ 31 // console.log(i) 32 // } 33 // arr[1] = fn2 34 // } 35 // { 36 // var i = 3; 37 // function fn3 (){ 38 // console.log(i) 39 // } 40 // arr[2] = fn3 41 // } 42 // var i = 3; 43 44 // [ 45 // fn1, 46 // fn2, 47 // fn3 48 // ] 49 50 51 52 // 这个位置 i = 3; 53 // arr[2](); 54 // arr[1](); 55 // arr[0](); 56 57 58 59 60 61 62 63 // var arr = []; 64 // for (let i = 0; i < 3; i++) { 65 // // console.log(arr[i]); 66 // // var item = arr[i]; 67 // arr[i] = function(){ 68 // console.log(i) 69 // }; 70 // } 71 // 72 // { 73 // let i = 0; 74 // function fn1 (){ 75 // console.log(i) 76 // } 77 // arr[0] = fn1 78 // } 79 // { 80 // let i = 1; 81 // function fn2 (){ 82 // console.log(i) 83 // } 84 // arr[1] = fn2 85 // } 86 // { 87 // let i = 2; 88 // function fn3 (){ 89 // console.log(i) 90 // } 91 // arr[2] = fn3 92 // } 93 // let i = 3; 94 95 // [ 96 // fn1, 97 // fn2, 98 // fn3 99 // ] 100 // arr[0](); 101 // arr[1](); 102 // arr[2]();