美文网首页
js函数作用域

js函数作用域

作者: 我讲你思 | 来源:发表于2017-12-15 14:52 被阅读0次
    var scope = 'global';
    var f = function() {
     console.log(scope); // 输出 undefined
     var scope = 'f';
    }
    f(); 
    

    JavaScript 的作用域是通过函数来定义的,在一个函数中定义的变量只对这个函数内部可见,我们称为函数作用域。在函数中引用一个变量时,JavaScript 会先搜索当前函数作用域,或者称为“局
    部作用域”,如果没有找到则搜索其上层作用域,一直到全局作用域。
    这是 JavaScript 的一个特性,按照作用域搜索顺序,在 console.log 函数访问 scope 变
    量时,JavaScript 会先搜索函数 f 的作用域,恰巧在 f 作用域里面搜索到 scope 变量,
    所以上层作用域中定义的 scope 就被屏蔽了,但执行到 console.log 语句时,scope 还
    没被定义,或者说初始化,所以得到的就是 undefined 值了

    相关文章

      网友评论

          本文标题:js函数作用域

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