为什么立即执行函数内不先输出函数内部变量?

新手上路,请多包涵
(function a(){
  a=20;
  b=a
  console.log(b);
})();

输出是[Function: a]

阅读 1.3k
2 个回答

a=2 并没有声明一个局部变量,声明局部变量需要用 var, let, const

a 在函数内确实存在,就是函数本身,并且是 immutable 的,即不可更改。所以 a=20; 实际是无效的,在严格模式下会出错。

b=a 这里 a 还是函数本身,赋值后(全局的)b 也是这个函数。

所以有你看到的结果。

推荐问题
宣传栏