下文笔者讲述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