全局变量:可以随时调用的变量。
局部变量:只能在函数内部调用的变量
比喻:清朝有兵部、吏部 、刑部三个部门,相当于三个函数。兵部可以调动守备军,吏部可以调动后勤兵,刑部可以调动狱卒,这三支部队相当于三个变量,只能被本部门调用,不能被其它部门调用。而三者都可以调动老板姓这支变量。
代码例子:
情况一
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()函数。