js作用域链

  • js作用域链
  • <script>
        var up = 555;
        function display(){
            var innerVar = 2;
            function inner(){
                var innerVal = 4;
                console.log(up);
            }
            inner();
        }
        display();
        //这里涉及到了3个作用域链对象 inner, display, window, 查找变量会依次先上查找
    </script>
    <script>
        //函数内部,局部变量的优先级比同名的全局变量高
        //var up = 1;
        function global(){
            var up = 100;
            console.log(up);
        }
        global();
        console.log(up);//已经不是同一个变量,用的是全局变量的rain, 即上一个脚本定义的全局变量
    </script>
    <script>
        //函数中声明的变量在整个函数中都有定义,会隐藏同名的全局变量
        var x = 1;
        function fn(){
            console.log(x);
            var x = 'status';
            console.log(x);
        }
        fn();
    </script>
原文地址:https://www.cnblogs.com/leijiuling/p/5643660.html