functionMakecounter () {//cannot be executed immediately //I can only be accessed within the Makecounter vari = 0; return function() {Console.log (++i); }; } varCounter = Makecounter ();//Object 1Counter ();//logs:1//Immediate executionCounter ();//Logs:2 varCounter2 = Makecounter ();//Object 2Counter2 ();//logs:1Counter2 ();//Logs:2 varFoo =function() {Console.log ("/* code * *")};//no direct Operation . varFoo =function() {Console.log ("/* code * *")} ();//Run directly functionFF () {/*Code*/}();//syntaxerror:unexpected Token error functionFF () {Console.log ("/* code * *")} (1);//No exception, no output functionFoo () {Console.log ("/* Code * *")}; (1);//No error, no output (function() {Console.log ("/* code * *")} ());//It is recommended to use this direct output(function() {Console.log ("/* code * *")});//But this is also a direct output that can be used vari =function() {Console.log ("/* code * *")} ();//Direct Output true&&function() {Console.log ("/* code * *")} ();//Direct Output0,function() {Console.log ("/* code * *")} ();//Direct Output!function() {Console.log ("/* code * *")} ();//Direct Output~function() {Console.log ("/* code * *")} ();//Direct Output-function() {Console.log ("/* code * *")} ();//Direct Output+function() {Console.log ("/* code * *")} ();//Direct Output New function() {Console.log ("/* code * *")};//Direct Output New function() {Console.log ("/* code * *")} ();//Direct Output functionff () {New function() {Console.log ("/* Code * *") }; !function() {Console.log ("/* Code * *") }(); } ff (); Direct Output
! function () {Console.log ("/* Code */1")} (Console.log ("/* Code */2")); // Direct Output executes 2 in execution 1
JS Call function immediately