• 理解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()函数。

  • 相关阅读:
    关于js中this的指向问题
    关于css垂直水平居中的几种方法
    个人第一个jquery插件(tips)
    css3实现虚拟三角形
    js-关于唯一ID的创建
    面试题
    new Promise()
    JSON.parse()、JSON.stringify()和eval()的作用
    vue-router路由导航
    NodeJS
  • 原文地址:https://www.cnblogs.com/jiandanshishu/p/12953317.html
Copyright © 2020-2023  润新知