JS程序執行前,會將使用var聲明的變量提升到所在作用域的最前邊;
賦值還是在原來位置;
******
案例1
******
** var c=3
** function fun(){
** c=5;
** var d=9;
** };
** console.log(c);//3
** console.log(d);//找不到d,因為加了var;
** fun();
** console.log(c);//5
**************************************
*****
案例2
*******
** console.log(a);
** var a=1;//undefined;
**************************************
******
案例3
******
** var c=3;
** function fun(){
** console.log(c);
** var c=5;
** };
** fun(c);//undefined;
**
** var d=3;
** function fun(){
** console.log(d);
** d=5;
** };
** fun(d);//3
**************************************
解釋如下:
作用域
變量和函數的可訪問范圍,分為兩種
第一種:函數作用域
***在函數中使用var關鍵字聲明的變量,只能在函數的內部訪問;
第二種:全局作用域
***在函數的外部使用var聲明的變量,可以在任意位置訪問;