理解js的全局变量和局部变量

全局变量:可以随时调用的变量。

局部变量:只能在函数内部调用的变量

比喻:清朝有兵部、吏部 、刑部三个部门,相当于三个函数。兵部可以调动守备军,吏部可以调动后勤兵,刑部可以调动狱卒,这三支部队相当于三个变量,只能被本部门调用,不能被其它部门调用。而三者都可以调动老板姓这支变量。

代码例子:

情况一

function aaa() {

i = “aiaiai”

function bbb() {

alert(i);

};

aaa();

bbb();

此时会输出“aiaiai”。这种情况下i相当于一个全局变量,可以在全局范围内调用。比喻来讲,任何其它部门获得皇帝许可后都可以调用兵部的守备军。如果是以下:

情况二

function aaa() {

var i = “aiaiai”

function bbb() {

alert(i);

};

aaa();

bbb();

此时不会输出任何结果。i这支部队已经被律法规定只能在兵部内用于特定的用途,即便是皇帝的命令也不顶事。

再如情况三

function aaa() {

i = “aiaiai”

function bbb() {

alert(i);

};

bbb();

此时也不会有任何结果。aaa()函数未被执行,相当于根本没有建立这个部门,更别说调用它内部的兵丁。

情况四

function aaa() {

i = “aiaiai”

function bbb() {

alert(i);

};

bbb();

aaa();

此时也不会有输出结果。bbb()这个部门再需要兵马的时候aaa()这个部门还没有建立,等到bbb()把问题解决后,国家才考虑到要建立兵部,这才执行aaa()函数。

原文地址:https://www.cnblogs.com/jiandanshishu/p/12953317.html