营销网站案例合肥市建设工程劳务分包合同备案表在哪个网站下载

张小明 2026/1/12 1:51:08
营销网站案例,合肥市建设工程劳务分包合同备案表在哪个网站下载,做购物网站哪个cms好用,网络服务器管理软件彻底搞懂JavaScript块级作用域与函数作用域#xff1a;var、let、const的核心区别 在JavaScript中#xff0c;作用域是控制变量访问权限的核心机制#xff0c;直接影响代码的安全性、可维护性甚至运行结果。尤其是ES6引入块级作用域后#xff0c;var、let、const 三者的作用…彻底搞懂JavaScript块级作用域与函数作用域var、let、const的核心区别在JavaScript中作用域是控制变量访问权限的核心机制直接影响代码的安全性、可维护性甚至运行结果。尤其是ES6引入块级作用域后var、let、const三者的作用域差异成为前端面试和日常开发的高频考点。从基础概念出发彻底理清函数作用域与块级作用域的区别以及不同声明关键字的用法边界。一、先搞懂什么是函数作用域ES5及之前的核心作用域在ES6之前JavaScript中只有两种作用域全局作用域和函数作用域。其中函数作用域是核心它的核心规则是var声明的变量作用域被限制在包含它的函数内部在整个函数体内都有效不受内部代码块如if、for花括号的限制。1.1 函数作用域的直观示例function foo() { if (true) { var x 10; // 用var声明变量 } console.log(x); // 10正常输出 } foo(); console.log(x); // 报错x is not defined从示例能看出变量x虽然在if代码块内声明但作用域覆盖整个foo函数所以在if外部、函数内部依然能访问。函数外部无法访问x因为var被函数作用域限制超出函数则失去访问权限。1.2 函数作用域的“坑”变量提升函数作用域的另一个典型特征是var声明的变量会发生“变量提升”——变量声明被提升到函数或全局作用域的顶部且默认初始化为undefined这常常导致意外的bug。function test() { console.log(x); // undefined变量提升导致此处不报错 if (true) { var x 5; // 声明被提升到函数顶部赋值保留在原地 } } test();如果不理解变量提升很容易误以为console.log(x)会报错但实际上var x已经被提升到函数顶部只是尚未赋值所以输出undefined。二、ES6新特性块级作用域的诞生ES6ECMAScript 2015为了解决var带来的变量污染、作用域模糊等问题正式引入了块级作用域。其核心规则是变量的作用域被限制在最近的一对花括号{}内如if、for、while代码块或独立花括号块外部无法访问。实现块级作用域的核心关键字就是let和const。2.1 块级作用域的直观示例// 独立代码块 { let a 10; const b 20; console.log(a); // 10块内正常访问 console.log(b); // 20块内正常访问 } console.log(a); // 报错a is not defined console.log(b); // 报错b is not defined // if代码块 if (true) { let y 20; } console.log(y); // 报错y is not defined从示例能清晰看出let、const声明的变量严格被限制在花括号{}内部超出这个块就失去访问权限这就是块级作用域的核心特性。2.2 为什么说var没有块级作用域这是var与let/const的核心区别之一var声明的变量不会被花括号{}限制只会被函数作用域或全局作用域限制。用一个对比示例更直观理解if (true) { var a 1; // var声明不受块级限制 let b 2; // let声明受块级限制 } console.log(a); // 1正常输出全局作用域可访问 console.log(b); // 报错b is not defined如果没有函数包裹var a的作用域就是全局即使在if块内声明外部依然能访问而let b被块级作用域限制外部无法访问。三、核心对比var vs let/const 全维度差异除了作用域差异var与let/const在变量提升、重复声明等方面也有显著区别整理成表格一目了然特性varlet / const作用域函数作用域 或 全局作用域块级作用域花括号{}限制变量提升有声明提升到作用域顶部初始化为 undefined有声明提升但不初始化进入暂时性死区访问报错重复声明允许同一作用域内可重复声明同一变量不允许同一作用域内重复声明会报错常量限制无声明后可任意修改值const 声明的变量不可修改引用类型仅限制引用地址let 可修改关键补充暂时性死区TDZ对于let/const的“声明提升但不初始化”需要特别理解暂时性死区从作用域开始到变量声明语句之前该变量处于“死区”任何访问都会报错。if (true) { console.log(y); // 报错Cannot access y before initialization let y 20; // 声明语句之前为暂时性死区 }四、块级作用域的实际应用解决哪些问题块级作用域的引入不仅规范了变量作用域还解决了很多ES5时代的“坑”最典型的有两个场景4.1 避免变量污染全局/外层作用域在循环、条件判断等代码块中使用let/const可以避免变量泄漏到外层作用域减少变量冲突。// 反面示例var导致全局污染 for (var i 0; i 3; i) { // 循环逻辑 } console.log(i); // 3i泄漏到全局作用域 // 正面示例let限制块级作用域 for (let j 0; j 3; j) { // 循环逻辑 } console.log(j); // 报错j is not defined无泄漏4.2 解决循环中的闭包问题ES5中用var声明循环变量由于没有块级作用域容易导致闭包访问到错误的变量值而let每次迭代都会创建新的作用域完美解决这个问题。// 反面示例var导致闭包访问错误 for (var i 0; i 3; i) { setTimeout(() console.log(i), 100); // 输出3 3 3 } // 正面示例let解决闭包问题 for (let i 0; i 3; i) { setTimeout(() console.log(i), 100); // 输出0 1 2 }原因var i是函数/全局作用域循环中只创建一个变量定时器回调访问的都是同一个最终值 3而let i每次迭代都创建新的块级作用域每个定时器回调访问的是当前迭代的i。五、总结开发中该如何选择理解了作用域的核心差异后日常开发的选择原则很简单优先使用const大多数变量声明后不需要修改用const能明确语义避免意外修改提高代码安全性。需要修改的变量用let如循环变量、需要重新赋值的变量用let限制块级作用域避免污染。坚决不用varES6之后var的所有功能都能被let/const替代且var的作用域和变量提升特性容易引发bug没必要再使用。最后再梳理核心要点块级作用域由{}定义通过let/const实现var只有函数作用域无块级限制合理使用块级作用域能避免变量污染和提升代码可维护性。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设需要技术价格低怎么说

FaceFusion镜像资源占用对比:内存优化表现优异 在AI视觉应用快速渗透内容创作、数字娱乐和影视后期的今天,人脸替换技术已不再是实验室里的概念玩具。从短视频平台上的趣味换脸滤镜,到专业级影视合成,这类工具正变得无处不在。然而…

张小明 2026/1/10 15:11:54 网站建设

网站管理主要包括哪些内容ip营销

第一章:Open-AutoGLM Web性能优化概述Web性能优化是提升Open-AutoGLM应用响应速度、降低资源消耗和增强用户体验的关键环节。随着模型推理任务日益复杂,前端与后端的协同效率直接影响系统的整体表现。通过合理的架构设计与资源管理策略,可以显…

张小明 2026/1/10 16:35:28 网站建设

为古汉字老人做网站Wordpress无法显示

随着人工智能技术的飞速发展,大语言模型(LLM)在处理长文本任务时的能力日益成为衡量模型性能的关键指标。近日,Qwen3-30B-A3B-Instruct-2507模型在100万个token上下文长度的推理任务中展现出卓越性能,不仅成功突破了长…

张小明 2026/1/10 16:52:56 网站建设

数据上传网站国际新闻最新消息10条2022

pysnowball:快速搭建个人股票数据监控系统 【免费下载链接】pysnowball 雪球股票数据接口 python edition 项目地址: https://gitcode.com/gh_mirrors/py/pysnowball 作为雪球API的Python封装库,pysnowball为量化投资爱好者和金融科技开发者提供了…

张小明 2026/1/10 17:03:17 网站建设

推广公司网站有哪些方式wordpress原创主题

Lucky ACME终极教程:如何零门槛配置免费SSL证书自动续期 【免费下载链接】lucky 软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,阿里云盘,ftp,webdav,filebrowser 项目地址: https://gitcode.com/GitHub_Trending/luc/luck…

张小明 2026/1/10 17:13:16 网站建设

nginx wordpress建站做购物网站的初衷

附件四: 山东轻工业学院毕业设计(论文)开题报告课题名称基于大数据的智能车辆监控与管理平台设计与实现课题类型导师姓名学生姓名学 号专业班级开题报告内容:选题依据(选题的目的、意义、国内外研究现状、并注明主要参考文献)…

张小明 2026/1/10 18:23:20 网站建设