乐趣区

关于javascript:IIFE具名函数执行问题

(function b() {
b = 123;
console.log(‘1—‘,b);//function b
c=1;
})();
console.log(‘2—‘,b);//undefined
console.log(‘3—‘,c);//1
console.log(‘4—‘,window);// 蕴含 c 不蕴含 b
依据上下文执行程序来讲,第一次打印应是最初一次赋值的后果 123,事实上后果是 function b; 因为是自执行函数:
1.b 会立刻执行
2. 自执行函数是一个函数表达式
3. 自执行函数具名的话,名称等同于 const b= 值;
因而函数外部赋值不成立,const 申明的常量不能被批改。
之所以没有报错信息起因如下:

https://www.zhihu.com/questio…

退出移动版