JavaScrpt 变量作用域

首先:js 的作用域不是块级作用域而是函数作用域。(块级作用域:java花括号{})

 

举个栗子:--该栗子摘录javaScript权威指南(第6版)

  var scope ="global";

  function f(){

    console.log(scope);   // undefined

    var scope="scope";

    console.log(scope)   // "scope"

  }

当进入f() 时,会将所有变量的声明提前到第一行,但变量的赋值只会在var 那一行进行赋值。

在该方法中,局部变量覆盖全局变量但未赋值所以第一个scope 是 undefined,而后将其赋值,即可在控制台看到为scope。

posted @ 2016-07-27 17:34  蓝色丶格调  阅读(154)  评论(0编辑  收藏  举报