`
coolsooner
  • 浏览: 1313877 次
文章分类
社区版块
存档分类
最新评论

JavaScript变量作用域

 
阅读更多

变量作用域是程序中定义这个变量的区域。

先贴一段代码,如果读者对代码的输出并不感到困惑就不用往下面读了。

  1. 全局作用域与局部作用域
    全局(global)变量的作用域是全局的,在Javascript中处处有定义;而函数内部声明的变量是局部(local)变量,其作用域是局部性的,只在函数体内部有定义。对于下面的输出读者应不会感到意外。

    全局变量作用域中使用变量可以不用var语句,但在声明局部变量是一定要使用var语句,否则会视为对全局变量的引用。看下面代码:

  2. 没有块作用域

    Javascript没有块级作用域,函数中声明的变量在整个函数中都是有定义的。对于下面的代码对于生疏的读者可能颇感意外:

    由于语句4.1(var scope = "local";)声明的变量在整个checkScope函数作用域内都有效,因此在语句4.2(document.write(scope); )执行的时scope引用的是局部变量,而此时局部变量scope尚未定义,所以输出”undefined”。因此一个好的编程习惯是将所有的变量声明集中起来放在函数的开头。

    在了解了上述内容之后,读者再看看代码1应该不会感到困惑了。
  3. 对象的属性变量
    对象的属性变量比较容易理解,看一下下面的代码读者应该不会感到疑惑。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics