立即调用函数表达式 给函数体加大括号,在有变量声明的情形下,没有任何区别 但是,如果只是[自动执行]的情形下,就会不同 因为,一个匿名函数,不赋值或函数体不加小括号,是不能自动执行的 //以下情形并无差别 var count100 = function getCount100(){ return(100) }();//100 var count200 = (function getCount200(){ return(200) })();//200,加小括号和count100没有区别 var c
1.函数表达式与函数声明的区别 函数声明有“提升”(hoisting)的特性,而函数表达式没有.也就是说,函数声明会在加载代码时被预先加载到context中,而函数表达式只有在执行表达式语句时才会被加载 2.闭包 有权访问另一个函数作用域中的变量的函数.闭包可以访问另一个作用域中的变量,因此闭包得到的变量值是最终值,而不是该变量在某一时刻的值,有一个很经典的例子: function createFuns(){ var result = new Array(); for(var i = 0;i <
声明一个函数: var x=1; foo(); function foo() { console.log(x);//1 } myfun();//报错 定义一个函数表达式: var myfun=myfoo() { console.log(x); } 函数作为JavaScript的一等公民,声明函数时会把函数提升至作用域顶部,而函数表达式这不会,代码从上至下依次执行,必须等定义好函数表达式之后才能执行调用函数的方法. 声明变量也是如此: var num=123; 等同于: var num://var