var a=1;
(function(){
console.log(a);
var a=2;
console.log(a);
})();
问题1:函数不是只有
1:function fn1(){
}
2:fn1= function(){
}
这两种写法吗?
为什么会有将整个函数括号起来在后面再来个小括号的写法?
问题2:
var a = 1在第一行,所以已经声明并初始化,而且它在第一行也是首先首先执行,并且var a自动被提升在最上,
下面的funciton也是声明提升,那var a与function都提升的话,①哪个在前哪个在后?②变量的初始化不提升但是变量的初识化在第一位,所以如果排个顺序的话(1、var a先提升,2、function后提升就提升在var a前面了 3、所以第一名就是function ,第二名就是var a,因为var a只是声明提升但是初始化没提升所以var a = 1就被排在第三名了)?是不是这样理解?