JavaScript作用域


JavaScript 作用域

在JavaScript中,对象和函数也是变量.

在JavaScript中,作用域是你可以访问的变量、对象和函数的集合.

JavaScript 有函数作用域: 这个作用域在函数内变化.


本地JavaScript变量

一个变量声明在JavaScript函数内部,成为函数的局部变量

局部变量有局部作用域: 它们只能在函数中访问.

// code here can not use carName

function myFunction() {
    var carName = "Volvo";

    // code here can use carName

}

让我试试

由于局部变量只在它们的函数中被识别,所以具有相同名称的变量可以在不同的函数中使用.

当函数启动时创建局部变量,当函数完成时删除.


全局JavaScript变量

函数外声明的变量, 成为全局变量.

全局变量具有全局作用域: 网页上的所有脚本和函数都可以访问它.

var carName = " Volvo";

// code here can use carName

function myFunction() {

    // code here can use carName

}

让我试试


自动全局

如果给未声明的变量赋值, 它会自动成为全局变量.

此代码示例将声明一个全局变量carName,即使赋的值是函数内部.

myFunction();

// code here can use carName

function myFunction() {
    carName = "Volvo";
}

让我试试

不要创建全局变量,除非你非常需要

在严格模式下 "Strict Mode"自动全局变量将失败.


在HTML中的全局变量

在JavaScript中,全局作用域是完整的JavaScript环境

在HTML中,全局作用域是window对象。所有的全局变量都属于window对象。

var carName = "Volvo";

// code here can use window.carName

让我试试

你知道吗?

全局变量(或函数)可以覆盖窗口变量(或函数). 任何函数,包括窗口对象,都可以覆盖全局变量和函数.


JavaScript变量的生命周期

一个JavaScript变量的生命周期从声明时开始.

当函数完成时会删除局部变量.

全局变量在关闭页面时被删除.


Function 参数

函数实际参数(形式参数)作为函数内的局部变量使用.