news 2026/5/10 9:53:37

typescript-var和let作用域

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
typescript-var和let作用域

什么是作用域?

作用域可以理解为某个变量在某个范围内是可以访问到。

var是函数作用域(声明的函数内)、全局作用域(在哪里都可以访问到)

let是块级作用域(即程序中的大括号{}包含的范围内)

看下面的例子:

console.log("---------------------"); { var c = 100; } console.log(c); { let c = 10; console.log("block area ", c); } console.log(c); console.log("======================");

看以上示例中输出的两个100都是输出的var声明的变量c,因为var声明的是函数作用域或全局作用域(在这里是全局的),所以输出发的时候是100;

而let声明的是块级作用域,即只在大括号内有效{},所以只有在大括号内输出的才是10,即使大括号外有输出这个变量,也不能输出这个块里面的值。

再看下面的例子:

function test() { for (var i = 0; i < 10; i++) { setTimeout(() => { console.log(i); }, 0); } } test(); function test1() { for (var i = 0; i < 10; i++) { (function (index) { setTimeout(function () { console.log(index); }, 0); })(i); } } test1(); function test2() { for (let i = 0; i < 10; i++) { setTimeout(() => { console.log(i); }, 0); } } test2();

这个有点绕,

test函数中使用的是var,是函数作用域,而setTimeout是异步函数,for的循环执行完了(这里是同步执行的),最后i变成了10,而setTimeout会在同步函数后执行,所以最后输出了函数作用域内的变量i,即10.

test1函数中也是使用的var,但是输出正常,这里有一个区别是使用了立即执行函数,即内部有一个function,这里把var的参数传给了index,而index是在这个内部函数作用域内有效,这个在书面上理解为捕获了i的值。即把i的值给了index,index是函数作用域内的,异步setTimeout执行的时候 ,输出了内部函数中的index的值。(这个是我个人的理解啊,有误差的大家可以指正)

test2函数中使用的是let,这个是块级作用域,即{}捕获了i的值。可以避免var声明引起的问题。在未来的工作中要尽量使用let。避免出现上面说的问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 1:21:23

一文带你快速了解大模型蒸馏

一文搞懂大模型蒸馏 前言 如今&#xff0c;大模型在自然语言处理、计算机视觉等领域展现出惊人的能力&#xff0c;能处理复杂的任务、输出高质量的结果。但与此同时&#xff0c;大模型的“重量级”特性也带来了不少麻烦&#xff1a;动辄数十亿、上万亿的参数量&#xff0c;需要…

作者头像 李华
网站建设 2026/5/4 8:19:30

NVIDIA Rubin平台重磅亮相CES:六芯协同重塑AI算力,2026下半年量产落地

从行业演进视角来看&#xff0c;CES虽仍冠以消费电子展之名&#xff0c;但如今已成为科技巨头发布前沿算力技术的重要阵地&#xff0c;其技术辐射范围早已突破消费端边界。NVIDIA作为AI算力领域的领军者&#xff0c;此次率先召开芯片厂商发布会&#xff0c;重磅推出下一代Rubin…

作者头像 李华
网站建设 2026/4/28 8:23:53

中小企业服务器托管哪家好?尚航科技综合实力解析

数字化浪潮下&#xff0c;选择一家靠谱的服务器托管商&#xff0c;对中小企业来说至关重要。对于中小企业而言&#xff0c;服务器托管不仅是将服务器放在机房那么简单&#xff0c;它关系到业务连续性、数据安全性和长期成本控制。一个好的IDC服务商能够为企业提供稳定可靠的数字…

作者头像 李华
网站建设 2026/5/5 21:19:56

北京楚珩医疗科技有限公司如何推动新中医事业发展?

公司通过技术创新 、学术创新 &#xff0c;深入中医行业 &#xff0c;做新中医医疗领域领导者 。公司与各大三甲医院权威中医专家合作整理 、持续创新出更加全面的皮内针临床治疗方案 &#xff0c;通过学术交流 、技术培训等方式 &#xff0c;将成熟的实操技术从专业领域普及到…

作者头像 李华
网站建设 2026/5/5 1:12:43

【后端开发面试高频场景题设计题】深度解析| 面试全覆盖

文章目录目录一、 压轴高频场景题深度解析1.1 分布式缓存与数据库的数据一致性保障方案问题描述分析思路参考答案面试考察点面试追问1.2 数据库读写分离方案与实践问题描述分析思路参考答案1.2.1 读写分离核心架构对比1.2.2 主从同步方式对比1.2.3 主从同步延迟的解决方案面试考…

作者头像 李华
网站建设 2026/5/9 9:06:32

AI Agent的自监督表示学习技术

AI Agent的自监督表示学习技术 关键词:AI Agent、自监督表示学习、深度学习、特征提取、无监督学习 摘要:本文深入探讨了AI Agent的自监督表示学习技术。首先介绍了该技术的背景,包括目的、预期读者、文档结构和相关术语。接着阐述了核心概念及其联系,通过文本示意图和Merm…

作者头像 李华