##关于变量和参数的问题
var a = 2;//全局变量
function func(){
var b = 1;//局部变量
c = 3;//全局变量
}
####由上面的列子我们可以知道==
1.函数外面定义的变量是全局变量,函数可以直接使用。2.在函数内部没有使用var定义的变量则为全局变量3.在函数内使用var关键字定义的变量是局部变量,即出了函数外边无法获取这个变量。(作用域只限于函数内)==
##关于JS中声明全局变量的显式声明和隐式声明,分别介绍:
###显式声明:
使用var关键字 + 变量名在(标识符)的方式在function外部声明,即为全局变量。否则在函数内部声明的变量即为局部变量。该方式为显式声明。
详细如下:
var test = 5;//全局变量
function b(){
var a = 3;//局部变量
alert (a);//这里因为没有调用a方法,所以没有弹出
}
function c(){
alert(test);//同样,这里没有调用c方法,也没有弹出。
}
//
###隐式声明
test = 5;//全局变量
function a(){
d = 3;//d也是全局变量
alert(test);
}
a();//执行a,输出5
alert(d);//这里也可以访问a方法里面的变量,因为d是全局变量,且上面执行了函数a
没有使用var,直接在函数内给test赋值,这样会隐式声明了全局变量test.
###声明方式三:
####使用window全局对象来声明,全局对象的属性对应也是全局变量,详细如下:
<script>
window.test = 50;
alert(test);//50
</script>