关于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…

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理