var b = 3; (function(){ b = 5; var b = 2; })(); console.log(b);
5
3
2
程序报错
//原题应该是这样 var b = 3; (function(){ b = 5; var b = 2; })(); console.log(b);
{ var b; b = 5; b = 2; }
var b = 3; (function(){ b = 5;//先找函数内部,函数内部没有b,改变的是全局作用域里的b //var b = 2; })(); console.log(b);//输出5
全局变量b的值为3
立即执行函数执行之后 局部变量b为2 全局变量b变成5
在全局下打印b 打印的是全局变量b
则结果为5
在看了其他网友的思路后
原来立即执行函数预编译时变量声明提升 则全局变量实际上没有被影响
则结果应该为3
立即执行函数执行完之后会立即销毁不占用内存空间
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题