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>