JavaScript 作用域
-
JavaScript作用域
作用域确定变量的可访问性(可见性)。 -
JavaScript函数作用域
在JavaScript中有两种类型的作用域:- 局部作用域
- 全局作用域
JavaScript具有函数作用域:每个函数都创建一个新的作用域。作用域确定这些变量的可访问性(可见性)。函数内部定义的变量不能从函数外部访问(可见)。 -
JavaScript局部变量
在JavaScript函数中声明的变量,变为函数的局部变量。局部变量具有函数作用域:它们只能在函数内访问。
尝试一下// 这里的代码不能使用carName function myFunction() { var carName = "Volvo"; // 这里的代码可以使用carName }
由于局部变量仅在其函数内部被识别,因此具有相同名称的变量可用于不同的函数。函数启动时会创建局部变量,并在函数完成时删除。 -
JavaScript全局变量
在函数外声明的变量变为全局变量。全局变量具有全局范围:网页上的所有脚本和函数都可以访问它。
尝试一下var carName = "Volvo"; // 这里的代码可以使用carName function myFunction() { // 这里的代码也可以使用carName }
-
JavaScript变量
在JavaScript中,对象和函数也是变量。来自代码不同部分的变量,作用域决定对象和函数的可访问性。
-
自动全局
如果为尚未声明的变量赋值,它将自动成为全局变量。此代码示例将声明一个全局变量carName,即使该值是在函数内部分配的。
尝试一下myFunction(); // 这里的代码能够使用 carName function myFunction() { carName = "Volvo"; }
-
严格的模式
所有现代浏览器都支持在“严格模式”下运行JavaScript。您将在本教程的后续章节中了解有关如何使用严格模式的更多知识。全局变量不会在“严格模式”下自动创建。
-
HTML中的全局变量
使用JavaScript,全局范围是完整的JavaScript环境。在HTML中,全局范围是window对象。所有全局变量都属于window对象。
尝试一下var carName = "Volvo"; // 这里的代码可以使用window.carName
除非您打算,否则不要创建全局变量。您的全局变量(或函数)可以覆盖窗口变量(或函数)。任何函数(包括window对象)都可以覆盖全局变量和函数。
-
JavaScript变量的生命周期
JavaScript变量的生命周期在声明时开始。功能完成后,将删除局部变量。在Web浏览器中,当您关闭浏览器窗口(或选项卡)时,将删除全局变量,但仍可用于加载到同一窗口中的新页面。提示:函数参数(参数)作为函数内的局部变量。