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

2020-12-20 12:33

阅读:668

标签:参数   function   ons   变量声明   执行   console   作用域   全局   总结   

大家在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

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

标签:参数   function   ons   变量声明   执行   console   作用域   全局   总结   

原文地址:https://www.cnblogs.com/yujiawen/p/14029377.html


评论


亲,登录后才可以留言!