JavaScript作用域解析以及例题

​作用域是对于JavaScript执行顺序理解中非常关键的一环,也是面试题中经常出现的,因为其灵活程度,很多新手在这里吃尽苦头。所以出一篇简单的教程教大家如何快速掌握JavaScript作用域的使用的。

​这里我们先抛弃ES6中的let const等声明方式,虽然他让JavaScript严谨性变强,但是我们还是需要先抛弃他们,理解这其中的细节之处,到时候无论面试还是开发,都能够避免很多潜在问题。

什么是作用域

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

​也就是说我在程序的任意位置什么一个变量,这个变量在程序的那些位置有效可以访问,哪些位置无效不可访问都是作用域所决定的。而变量在JavaScript中声明的方式有多种,如var声明,函数声明和参数声明。

var a = 0; // var声明变量

function a(){} //函数声明方式

function fn(a){} //参数a为参数声明 

​当然还有一种特殊情况,如果是这样算什么声明了?

var a = function(){} //这也是var声明 只不过是函数赋值给变量a 

​而变量声明之后实际上是在内存中开辟一块空间,用来存储这个变量所表示的数据。而JavaScript不像C/C++一样,对于内存的申请释放是需要手动的,JavaScript的内存控制都是全自动的,也就是说自动申请,自动销毁。所以这就是为什么这个变量可能在某一个块能访问,因为内存没有销毁,但是如果销毁了,那么程序就自然而然访问不到这个变量了。所以这就是作用域的作用,也就是JavaScript变量可访问性控制。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值