作用域

作者: Top_Chenxi | 来源:发表于2017-05-22 11:14 被阅读9次

    作用域

    javascript没有块级作用域

    if (2 > 1) {
        var myName = 'c.c.';
    }
    
    console.log(myName); // c.c.
    
    for (var i = 0; i < 10; i++) {
    
    }
    
    console.log(i); // 10
    
    

    只有函数可以创建的作用域

    // 全局作用域
    var myName = 'c.c.',
        myYear = '1992';
    
    function base() {
        // base作用域
        var myName = 'v.v.',
            myYear = '1993';
    
        function fn() {
            // fn作用域
            var myName = 'q.q.',
                myYear = '1994';
        }
    }
    // 结论 :作用域有上下级的关系,上下级关系的确定就看函数是在哪个作用域下创建的
    // 结论 :作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突
    
    // 建议 :全局代码要在代码前端声明,函数中要在函数体一开始就声明好。除了这两个地方.
    // 建议 :其他地方都不要出现变量声明。而且建议用“单var”形式
    
    
    var x = 10;
    
    function foo() {
        console.log(x);
    }
    
    function fn() {
        var x = 20;
        (function() {
            foo();
        }());
    }
    
    fn(); // 10
    
    // 结论 :要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”
    
    

    相关文章

      网友评论

          本文标题:作用域

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