var let const 结合作用域 的探讨

作业域:我们可以简单的理解为 一个函数的方法体内就是一个作业域,

块级作用域: { },内表示块级作用域,比如 for循环的{ }

作用域链:和原型链 差不多,当一个访问一个变量时,会就近查找一个作用域,如果没有会沿着作业域链,一级一级的往上查找,

以上个人理解,如有错误,欢迎指出

var 适用 整个作用域,let  const 适用块级作用域

 

    function test() {
            for(var i=0 ;i<5;i++) {  // 
                const n= i
                var m= 9
            }
            for(let j=0 ;j<5;j++) {}
            // var  申明的变量 在 函数test 作用域内 都可以访问,而 let const     申明的变量 只能在块级作用域内访问
            console.log(i) // 可以访问
            console.log(m) // 可以访问
            console.log(j) // 不可以访问
            console.log(n) // 不可以访问
        }

 

posted @ 2020-06-10 15:21  有点油  阅读(148)  评论(0编辑  收藏  举报