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