zoukankan      html  css  js  c++  java
  • js 作用域

    js的作用域和py相似,if while等控制语句并没有自己作用域;而函数是有自己的作用域的;

    <body>
    <script>
        if(1==true){
            var s = 8;
        }
        console.log(s);
    
        function f(){
            var s2 = 6;
        }
        console.log(s2);        // Uncaught ReferenceError: s2 is not defined
    </script>
    </body>
    

    嵌套函数的作用域:

    var city = 'guangzhou';
    function func(){
        var city = 'foshan';
        function inner(){
            var city = 'huizhou';
            console.log(city);
        }
        inner();
    }
    func();
    
    # 运行结果:
    huizhou
    
    var city = 'guangzhou';
    function Bar(){
        console.log(city);
    }
    
    function func(){
        var city = 'foshan';
        return Bar;
    }
    var ret = func();
    ret();
    
    # 运行结果:
    guangzhou
    
    # 解释:var city = 'foshan'; 只在 func() 函数中生效,func() 函数返回了一个 Bar 函数指针,在 Bar() 函数中,city 在本地函数中找不到定义,向上一级寻找
    
    for (var i=1; i<=9; i++){
        setTimeout( function timer(){
            console.log(i);
        }, 1000);
    }
    

    运行结果:

  • 相关阅读:
    mac 快捷键
    mac 配置nginx 虚拟域名(转载)
    StringUtils中 isNotEmpty 和isNotBlank的区别【java字符串判空】
    软件常用版本英文snapshot和ga
    IF条件控制
    函数与方法
    数据类型
    函数 FUNCTION
    集合 SET
    字典 DICTIONARY
  • 原文地址:https://www.cnblogs.com/klvchen/p/10373255.html
Copyright © 2011-2022 走看看