javascript的全局变量和局部变量

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)局部变量的变量名和全局变量的变量名完全无关;

你可能感兴趣的:(JS)