JavaScript变量提升求解惑

var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a); 为什么弹出的是1
一只废喵
浏览 1383回答 1
1回答

Ewall_

1、函数声明首先被提升,然后才是变量。2、在函数域里定义一个和外部变量一样名称的变量时,变量的声明会提升至第一句,赋值则不会变所以就相当于:function b(){     function a(){}//b函数作用域里有一次函数声明提升     a=10;     return; } var a; //以上是函数声明和变量声明的提升;但是变量声明时,赋值则不会变,仅是提升而已 a=1; b(); alert(a);//1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript