JavaScript

JS作用域(全局作用域和局部作用域)

下文笔者讲述JS作用域的简介说明

JS作用域的简介

作用域指:
     变量的可见范围,我们将这个范围称之为“作用域”

JS作用域分为以下两种:
     全局作用域和局部作用域

JS 全局作用域

全局作用域指:
    变量可以在当前脚本的任意位置访问
    拥有全局作用域的变量也被称为“全局变量”
    一般情况下拥有以下特征的变量具有全局作用域

拥有全局作用域:
   1.最外层的函数和在最外层函数外面定义的变量拥有全局作用域;
   2.所有未定义直接赋值的变量拥有全局作用域; 
   3.所有window对象的属性拥有全局作用域
      如:
	    window.name、window.location、window.top 等。
var str = "linux28.com!";
function myTest(){
    document.write(str);    // 输出:linux28.com!
}
myTest();
document.write(str);        // 输出:linux28.com!
注意事项:
    所有全局作用域变量都会绑定到window对象
	作为window对象的一个属性存在
var str = "JavaScript";
document.write(str);                    // 输出:JavaScript
document.write(window.str);             // 输出:JavaScript
document.write(str === window.str);     // 输出:true

JS局部作用域

在函数内部声明的变量具有局部作用域
   拥有局部作用域的变量也被称为“局部变量”
   局部变量只能在其作用域中(函数内部)使用 

注意事项:
   函数内定义的局部变量只有在函数被调用时才会生成
   当函数执行完毕后会被立即销毁
function myTest(){
    var str = "linux28.com!";
    document.write(str);    // 输出:linux28.com!
}
myTest();
document.write(str);        // 报错:str is not defined