如果之前没有使用过变量a,两者没有任何区别,如果之前有个a,那么本块里面新定义临时变量a,此前的a不受影响,本块结束后这个a不存在,块是指一个{}
使用var声明的变量作用域为当前作用域,直接声明为全局变量;(function(){var a = 1;i = 2;})();try{console.log(a);}catch(e){console.log(e.message);}finally{console.log(i);}