javascript变量作用域
变量分为本地变量和全局变量两种
我们看下面这个例子:
1 var myVariable = 'global'; 2 myOtherVariable = 'global'; 3 4 function myFunction(){ 5 var myVariable = 'local'; 6 return myVariable; 7 } 8 9 function myOtherFunction(){ 10 myOtherVariable = 'local'; 11 return myOtherVariable; 12 } 13 14 15 console.log(myVariable); //{1} global 16 console.log(myFunction()); //{2} local 17 18 console.log(myOtherVariable); //{3} global 19 console.log(myOtherFunction()); //{4} local 20 console.log(myOtherVariable); //{5} local
行1输出global,因为他是一个全局变量;
行2输出local,因为myVariable在myFunction函数中声明的本地变量,所以作用域仅在myFunction中;
行3输出global,因为我们在第二行初始化了的全局变量myOtherVariable;
行4输出local,myOtherFunction函数中,没有关键词var的修饰,所以这里引用全局变量myOtherVariable并将其复制loacl;
在行输出local,这是因为在行4中已经修改了myOtherVariable的值;