• js关于函数全局变量和局部变量的区分


    大家在js里写函数时,可能会出现局部变量和全局变量搞不清楚的情况!!(以下总结了几道题,搞懂即可!)
        1.  
        var a = 10;  //全局   100
        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
        var a = 10;  // 全局   
        function fn() {
            // var a;  => 函数执行之前也会预编译  => 变量提升
            a = 100;   // 局部变量 先找函数中有没有变量声明/形式参数  有=>局部变量(不影响全局)  没有=>向外跳一层找全局的
            console.log(a);  //100

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


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

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



        console.log(a);   // 报错
        a = 100;
        console.log(a);

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

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


        4.
        var a = b = 10;    // 全局  10  20

        b = 10;
        var a = b;

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

            b = 20;       // 全局   20
            var a = b;    // 局部   20

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

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


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

            c();

            function b() {
                var a = 1000;
                c();
            }
            b();
        }

        function c() {
            console.log("c里面的a", a);  //10   先找函数中有没有变量声明/形式参数  有=>局部变量(不影响全局)  没有=>向外跳一层找全局的
        }

        fn();

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

            c();

            function c() {
                console.log("c里面的a", a); //100  先找函数中有没有变量声明/形式参数  有=>局部变量(不影响全局)  没有=>向外跳一层找fn的作用域
            }
        }

        fn();
        console.log("函数外:", a);//  10
  • 相关阅读:
    管理技巧,绩效考核自评怎么写
    网站运营文章LIST
    搜索引擎算法研究专题六:HITS算法
    搜索引擎算法研究专题五:TF-IDF详解
    搜索引擎算法研究专题七:Hilltop算法
    搜索引擎算法研究专题四:随机冲浪模型介绍
    搜索引擎算法研究专题三:聚集索引与非聚集索引介绍
    利用Lucene.net搜索引擎进行多条件搜索的做法
    五大主流数字币钱包:imToken数字货币钱包,Bitcoin core钱包,BTS网页版钱包,AToken轻钱包,Blockchain
    Java 9 逆天的十大新特性
  • 原文地址:https://www.cnblogs.com/yujiawen/p/14029377.html
Copyright © 2020-2023  润新知