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

新手上路,请多包涵
(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 也是这个函数。

所以有你看到的结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏