美文网首页
变量的作用域、封闭函数、用变量的方式定义函数、闭包

变量的作用域、封闭函数、用变量的方式定义函数、闭包

作者: 栀心_d553 | 来源:发表于2019-12-31 08:12 被阅读0次

    变量的作用域

    全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享

        局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。
        函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,
        如果没有,就去外部查找
    
        函数内部如果不用'var'关键字定义变量,变量可能会变成全局变量,
        如果用严格模式解析会报错
    

    封闭函数

    全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享

        局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。
        函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,
        如果没有,就去外部查找
    
        函数内部如果不用'var'关键字定义变量,变量可能会变成全局变量,
        如果用严格模式解析会报错
    

    用变量的方式定义函数

    全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享

        局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。
        函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,
        如果没有,就去外部查找
    
        函数内部如果不用'var'关键字定义变量,变量可能会变成全局变量,
        如果用严格模式解析会报错
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用变量的方式定义函数</title>
        <script type="text/javascript">
            myAlert();
            function myAlert(){
                alert('hello!');
            }//函数名()直接调用
    
            var myAlert = function () {
                alert('hello!')
            };
            myAlert()//这种函数的调用不能提前,这是一个变量,
            // 不能当成函数去使用,所以,不能提前
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    闭包

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>闭包</title>
        <script type="text/javascript">
            /*
            闭包的本质就是函数嵌套,就是在函数里面定义函数,
            内部函数可以引用外部函数的参数和变量!
            参数和变量不会被垃圾回收机制给回收,直到你的页面关闭
            闭包的用途:可以存循环的索引值、做私有变量计数器
            */
            function aa(b){
                var a= 12;
                function bb(){
                    alert(a)
                }
                return bb;
            }
            var cc = aa(24);
    
    
    
            var cc = (function (b) {
                var a= 12;
                function bb(){
                    alert(a);
                    alert(b);
                }
                return bb;
            })(24);
            cc();//封闭函数
    
        </script>
    </head>
    <body>
        
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:变量的作用域、封闭函数、用变量的方式定义函数、闭包

          本文链接:https://www.haomeiwen.com/subject/bxauoctx.html