AI大模型教程
一起来学习

作用域与作用域链深度解析

一、作用域(Scope)

1、基本定义
作用域是程序中变量和函数的可访问范围,它规定了在何处以及如何查找变量。JavaScript采用词法作用域(Lexical Scope),即作用域在代码编写阶段就已确定(而非运行时)。

2、作用域的类型
2-1 全局作用域(Global Scope)

  • 最外层作用域
  • 在浏览器中是window对象
  • 在Node.js中是global对象
  • 生命周期:页面关闭时销毁
var globalVar = "I'm global";  // 全局变量

function globalFunc() {
   
   
	console.log("Global function");
}

// 浏览器环境中
console.log(window.globalVar);  // "I'm global"
window.globalFunc();  // "Global function"

2-2 函数作用域(Function Scope)

  • 函数内部的作用域
  • 使用var声明的变量具有函数作用域
  • 生命周期:函数执行完毕时销毁
function myFunction() {
   
   
  var functionScoped = "I'm function scoped";
  
  if (true) {
   
   
    var stillAccessible = "Still accessible";
  }
  
  console.log(stillAccessible); // "Still accessible" 
}

myFunction();
console.log(functionScoped); // ReferenceError: functionScoped is not defined

2-3 块级作用域(Block Scope)(ES6+)

  • {} 包围的代码块形成的作用域
  • 使用letconst声明的变量具有块级作用域
  • 生命周期:块执行完毕时销毁
{
   
   
  let blockScoped = "I'm block scoped";
  const alsoBlockScoped = "Me too!";
}

console.log(blockScoped); // ReferenceError
console.log(alsoBlockScoped); // ReferenceError

if (true) {
   
   
  let conditionVar = "Inside if block";
  console.log(conditionVar); // "Inside if block"
}
console.log(conditionVar); // ReferenceError

for (let i = 0; i &l

文章来源于互联网:作用域与作用域链深度解析

相关推荐: 认识 stable diffusion,从文生图开始

前言 想象一下,你只需动动手指,输入几行文字,就能创造出一幅绝美的画作。这不是魔法,而是 Stable Diffusion WebUI 带来的神奇体验!这款基于 Web 的用户界面,将高科技的图像生成技术变成了人人都能玩转的有趣工具。 以上为stabledif…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 作用域与作用域链深度解析
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们