060_JavaScript作用域

本文围绕JavaScript展开,介绍了作用域相关知识,包括局部和全局两种作用域类型,函数可创建新作用域。还阐述了局部变量和全局变量的定义、访问范围、生命周期等,如局部变量在函数内访问,函数完成时删除;全局变量可被网页所有脚本和函数访问,页面关闭时删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 作用域指的是您有权访问的变量(对象和函数也是变量)集合。

2. JavaScript函数作用域

2.1. 在JavaScript中有两种作用域类型:

  • 局部作用域
  • 全局作用域

2.2. JavaScript拥有函数作用域: 每个函数创建一个新的作用域。事实上代码块{}也可以创建一个作用域, 只不过代码块一般用于函数。

2.3. 作用域决定了这些变量的可访问性(可见性)。

2.4. 函数内部定义的变量在函数外部是不可访问的(不可见的)。

3. 局部变量

3.1. 在JavaScript函数中声明的变量, 会成为函数的局部变量。

3.2. 局部变量只能在函数内访问。

3.3. 由于局部变量只能被其函数识别, 因此可以在不同函数中使用相同名称的变量。

3.4. 局部变量在函数开始时创建, 在函数完成时被删除。

3.5. 实例

// 此处的代码不能使用carName
 
function myFunction() {
    var carName = "Volvo";
    // 此处的代码可以使用carName
}

4. 全局变量

4.1. 函数之外声明的变量, 会成为全局变量。

4.2. 全局变量的作用域是全局的: 网页的所有脚本和函数都能够访问它。

4.3. 实例

var carName = "porsche";

// 此处的代码能够使用carName变量

function myFunction() {
    // 此处的代码也能够使用carName变量
}

5. 自动全局

5.1. 如果您为尚未声明的变量赋值, 此变量会自动成为全局变量。

5.2. 这段代码将声明一个全局变量carName, 即使在函数内进行了赋值。

myFunction();

// 此处的代码能够使用carName变量

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

5.3. 在"严格模式"中不会自动创建全局变量。所有现代浏览器都支持以"严格模式"运行JavaScript。

6. 全局对象

6.1. 在web浏览器中, 全局对象就是浏览器对象(window)。

6.2. 所有全局变量均属于window对象。

6.3. 如果一个函数不是JavaScript对象的方法, 那么它属于window对象的函数。

7. JavaScript变量的有效期

7.1. JavaScript变量的有效期始于其被创建时。

7.2. 局部变量会在函数完成时被删除。

7.3. 全局变量会在您关闭页面是被删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值