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声明的常量不能被修改。
之所以没有报错信息原因如下:
IIFE具名函数执行问题_第1张图片
https://www.zhihu.com/questio...

你可能感兴趣的:(javascript前端)