JavaScript有两种变量:全局变量和局部变量。
如果在任何函数定义之外声明一个变量,则该变量为全局变量,
且该变量的值在整个持续范围内都可以访问和修改。
如下代码:
var kobe=24;
function kobeBryant(){
alert(kobe);
}
kobeBryant();
如果在函数定义内声明了一个变量,则该变量为局部变量,
每次执行该函数时都会创建和破坏该变量,且不能访问该函数外的任何事物访问。
局部变量一定要以var声明,否则就是全局变量。
一个局部变量的名称可以与某个全局变量的名称相同,但这是完全不同和独立的两个变量。因此,更改一个变量的值不会影响另一个变量的值。在声明局部变量的函数内,只有该局部变量有意义。
如下代码:
var total=50;
function square(num){
total=num*num;//这是操作全局变量;
return total;
}
var number=square(20);
alert(total);
function square(num){ var total=num*num; return total; } var total=50; var number=square(20); alert(total);
var cookie="i am cookie"; function test(){ var cookie="i am not fei cookie";//定义局部变量,test函数执行后不会影响到全局的cookie; } test(); alert(cookie);//输出i am cookie;var cookie="i am cookie"; function test(){ cookie="i am not fei cookie";//修改全局变量的值; } test(); alert(cookie);//输出i am not fei cookie;var cookie="i am cookie"; function test(){ var cookie="i am not fei cookie";//定义局部变量,test函数执行后不会影响到全局的cookie; window.cookie=cookie;//第一个cookie是全局的函数外部定义的,后面的cookie是在函数内定义的; }//利用window.变量 test();alert(cookie);个人总结:(1)变量的作用域分为两种,一种是全局变量,一种是局部变量;全局变量在整个函数范围内都可以被访问和修改,但是局部变量在每次执行函数时都会被创建和破坏该变量, 且访问不了该函数外的任何事物;(2)在函数定义外声明的变量时全局变量,函数定义内声明的变量时局部变量,如果没有用var关键字来声明变量,那么该变量会是全局变量;(3)局部变量的变量名和全局变量的变量名完全无关;