【高频考点精讲】深入理解 JavaScript 中的作用域和作用域链

你以为你很懂JavaScript作用域?看完这篇再说(全栈老李出品)

🧑‍🏫 作者:全栈老李

📅 更新时间:2025 年 5 月

🧑‍💻 适合人群:前端初学者、进阶开发者

🚀 版权:本文由全栈老李原创,转载请注明出处。

今天咱们聊聊JavaScript里那个看似简单实则暗藏玄机的东西——作用域。每次面试问到"说说作用域链",十个候选人里有八个会背"函数创建时会生成作用域链",但你要是追问"那为什么闭包能访问外部变量",有一半人就开始支支吾吾了。(全栈老李温馨提示:这篇文章建议搭配咖啡食用,效果更佳)

作用域到底是什么鬼?

想象你住在一个小区里(全局作用域),你家有个保险箱(局部作用域)。小区保安认识所有住户(全局变量),但不知道你家保险箱密码(局部变量)。这就是最朴素的作用域理解——变量在哪能访问,在哪不能访问。

但JavaScript的作用域可不止这么简单。来,看个代码:

// 全局作用域 - 全栈老李友情提示:这里就像小区大门
const communityName = "幸福里小区"; 

function checkIn() {
   
  // 函数作用域 - 相当于你家门禁
  const roomNumber = "902";
  console.log(`欢迎来到${
     communityName} ${
     roomNumber}`); 
  
  function openDoor() {
   
    // 嵌套函数作用域 - 相当于你家保险箱
    const password = "123456";
    console.log(`正在用密码${
     password}打开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈老李技术面试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值