js变量声明提升
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声明的变量,可以在任意位置访问;