1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8 //使用()将匿名函数包围,然后再调用,这叫做匿名函数的自运行
 9 //var a=function(num){alert(num)}
10 //(function(num){alert(num)}(1));
11 
12 //for(var i=0; i<3; i++){
13 //    (function(num){
14 //        alert(num);
15 //    })(i);
16 //}
17 
18 //自运行函数的多种写法
19 //(function(num){alert(num)}(1));
20 //(function(num){alert(num)})(1);
21 //!function(){alert(1)}()
22 //alert(1+function(){return 1}());
23 //-function(){alert(1)}()
24 //~function(){alert(1)}()
25 //void function(){alert(1)}()
26 
27 //(alert)('hello');
28 
29 //function fn1(num) {
30 //  alert(num);
31 //  return function(num) {
32 //      alert(num);
33 //  }
34 //}
35 //var fn2 = fn1(3);
36 //fn2(1);
37 
38 //function fn1(num) {
39 //  alert(num);
40 //  return function fn2() {
41 //      alert(num);
42 //      return function fn3(num) {
43 //          alert(num);
44 //          function fn4() {
45 //              alert(num)
46 //          }
47 //      }
48 //  }
49 //}
50 //var fn2 = fn1(1);
51 //fn2(2)(3)(4);
52 
53 /*
54  (function(){
55      匿名函数自运行的方式,可以模拟一个语句块的作用域
56      在此处的代码就是局部的,出了这个匿名函数,就无法访问了
57      这就意味着参数的分割,即使是相同的参数,中间一旦隔了这个匿名函数,就会变成两个同名但意义不同的函数
58  })()
59 */
60 //for(var i=0; i<3; i++){
61 //    (function(){
62 //        for(var i=0; i<3; i++){
63 //            alert(i);
64 //        }
65 //    })()
66 //}
67     </body>
68 </html>