对全局作用域和函数作用域的探讨

本文探讨了全局作用域与函数作用域的区别。全局作用域在页面加载时创建,销毁于页面关闭,其中的变量和函数是window对象的属性和方法。而在函数作用域中,每次调用函数都会创建新的作用域,这些作用域相互独立,只能向上访问全局作用域,不能从全局访问函数内部的局部变量。如果在作用域链中找不到变量,将抛出ReferenceError。

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

1,全局作用域

全局作用域在页面打开时创建,在页面关闭时销毁,在全局作用域中,一个对象window,他代表一个浏览器窗口,它由浏览器创建,我们可以直接调用

我们在全局作用域中创建的变量,可以作为window中的属性获取到,在全局作用域中创建的函数我们也可以window中的方法获取到

例:

所有的浏览器都支持window对象,它代表的时浏览器的窗口,所有的JavaScript中的变量,函数都是window对象中的一员,全局变量是window的属性,全局函数是window的方法;甚至HTML  DOM的document也是window对象中的一员;

直接写在JavaScript中的代码都保存在全局作用域中

全局作用域的变量是全局变量,在页面中的任意一部分都可以访问到

  1. 函数作用域

调用函数时就会调用函数作用域,在函数执行完毕后,函数作用域就会销毁,我们每调用一次函数就会创建一个新的函数作用域,它们之间时相互独立存在的;

在函数作用域中我们可以访问全局作用域,但在全局作用域中我们无法访问到函数作用域,在函数作用域中我们可以用window对象来获取到全局作用域;

例:

例:

在全局作用域中访问函数作用域中就会报错,因此我们无法在全局作用域中获取到局部变量

当函数作用域在获取一个变量时,它会在自身作用域中先进行查找,有就会直接进行使用,没有就会对上一个函数作用域进行查找,直到全局作用域,如在全局作用域中还没查找到,就会进行报错ReferenceError

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值