news 2026/6/10 17:05:35

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/6/9 21:37:23

香港服务器为何需要IPMI?好用吗

在当今数字化时代&#xff0c;香港作为全球重要的数据中心枢纽&#xff0c;其服务器托管服务备受企业青睐。对于使用香港服务器的用户而言&#xff0c;IPMI(智能平台管理接口)是一个关键且实用的技术工具。那么&#xff0c;香港服务器为何需要IPMI?它又是否好用呢?香港服务器…

作者头像 李华
网站建设 2026/6/10 11:12:37

敏捷的质量合伙人

在敏捷项目中&#xff0c;测试团队不是被弱化的角色&#xff0c;而是从 “事后验证者” 升级为 “全程质量赋能者”&#xff0c;核心价值是把质量内建于敏捷交付的全流程&#xff0c;而非仅在迭代末尾做 “验收把关”。即使是 PO 程序员就能推进的小型项目&#xff0c;测试的介…

作者头像 李华
网站建设 2026/6/10 10:54:59

学长亲荐8个一键生成论文工具,自考毕业论文轻松搞定!

学长亲荐8个一键生成论文工具&#xff0c;自考毕业论文轻松搞定&#xff01; AI 工具助力论文写作&#xff0c;高效省时更省心 随着人工智能技术的不断进步&#xff0c;越来越多的自考学生开始借助 AI 工具来提升论文写作效率。在当前 AIGC&#xff08;人工智能生成内容&#x…

作者头像 李华
网站建设 2026/6/10 10:55:56

主力上班之选股指标公式

{}ZTJ:ZTPRICE(REF(CLOSE,1),0.1); DTJ:DTPRICE(REF(CLOSE,1),0.1); 阳线:C>O; 上影线:(H-MAX(C,O))/REF(C,1); k线实体:Abs(C-O)/REF(C,1); 涨停:C/REF(C,1)>1.098&&HC; 昨日涨停:REF(C,1)REF(ZTJ,1); 两连板:EVERY(涨停,2); 五连板:EVERY(涨停,5); 昨日非涨停:…

作者头像 李华
网站建设 2026/6/10 10:56:02

一文搞懂大模型技术原理(初学者必看)

前言 说到大模型&#xff0c;大家可能每天都在接触——聊天时的智能回复、写报告时的文本生成、查资料时的问答助手&#xff0c;甚至代码调试时的智能提示&#xff0c;背后都有它的身影。很多人觉得大模型是“黑盒”&#xff0c;原理高深莫测&#xff0c;但其实它的核心逻辑的是…

作者头像 李华
网站建设 2026/6/10 12:37:25

基于SpringBoot的大学生评价反馈系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦大学生评价反馈渠道畅通化与高校管理优化的核心需求&#xff0c;开展基于SpringBoot的大学生评价反馈系统的设计与实现工作。当前高校学生评价反馈场景普遍存在反馈渠道单一、反馈流程不规范、问题响应处理不及时、反馈结果难追踪、评价数据分散难统筹等问题…

作者头像 李华