函数全局变量、局部变量以及作用域的练习

1. 注意函数调用后会将100赋值给全局的a

     var a = 10;
     function fn() {
         a = 100;
         console.log("函数内的a:", a); //100
     }
     console.log("函数外的a:", a); //10
     fn();
     console.log("函数外的a:", a); //100

2.局部与全局的作用域区分

     var a = 10;
     function fn() {
         var a = 100;
         console.log(a); //100
     }
     fn();
     console.log(a); //10

2.1 fn()内重新声明a将函数内部的a变成了局部函数

    var a = 10;
    function fn() {
、、
        a = 100; 
        console.log(a);//100

        var a = 1332;
    }
    fn();
    console.log(a);//10

3.

    var a = 10;
    function fn(a) {
        //var a;
        console.log(a);//undefined
        a = 100;
        console.log(a);//100
    }
    fn(10);
    console.log(a);//10

4. a=100,变量提升,但是没有var也没有赋值,所以报错

    console.log(a);  //err
    a = 100;
    console.log(a);  //

    function fn() {
        a = 100;
        console.log("我是函数里的a:", a); //
    }

    fn();
    console.log("我是函数外的a:", a); //

5. a=b=10;会将b变成全局变量

    var a = b = 10;

    function fn() {
        var a = b = 20;

        console.log("函数内:", a, b); //20,20
    }

    fn();
    console.log("函数外", a, b);//10,20

6. c()里没有a,往外找一层就找到全局的a

    var a = 10;
    function fn() {
        var a = 100;
        console.log("函数内:", a);//100

        c(); //10

        // function b() {
        //     var a = 1000;
        //     c();
        // }
        // b();
    }
    function c() {
        console.log("c里面的a", a);
    }
    fn();

7.c()往外找一层,就找到局部的a=100;

    var a = 10;
    function fn() {
        var a = 100;
        console.log("函数内:", a); //100

        c();

        function c() {
            console.log("c里面的a", a); //100
        }
    }
    fn();
    console.log("函数外:", a);//10
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,759评论 0 38
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,158评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,907评论 1 32
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,923评论 0 17
  • 转瞬间,人们己卸下了厚厚的冬装,迎来了花枝招展的春天! 一年之季在于春,春天一一一万物生发的季节,当然人...
    周英军阅读 3,499评论 0 0

友情链接更多精彩内容