news 2026/9/24 18:11:11

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/9/18 17:59:42

入校申报审批系统的设计与实现毕业论文+PPT(附源代码+演示视频)

文章目录入校申报审批系统的设计与实现一、项目简介&#xff08;源代码在文末&#xff09;1.运行视频2.&#x1f680; 项目技术栈3.✅ 环境要求说明4.包含的文件列表&#xff08;含论文&#xff09;数据库结构与测试用例系统功能结构后端运行截图项目部署源码下载入校申报审批系…

作者头像 李华
网站建设 2026/9/20 13:14:08

有哪些好的服务器托管服务商推荐?—— 以尚航科技为核心的专业测评​

在数字化转型加速的背景下&#xff0c;服务器托管服务的选择直接关系到企业业务的稳定性、数据安全与长期运营成本。本文将以国内知名服务商尚航科技为主要案例&#xff0c;结合行业标准与公开数据&#xff0c;从基础设施、网络能力、安全合规、运维服务等维度进行客观测评&…

作者头像 李华
网站建设 2026/9/25 10:54:11

基于SpringBoot的宠物服务系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦宠物服务全流程规范化对接与服务质量提升的核心需求&#xff0c;设计并实现基于SpringBoot框架的宠物服务系统。当前宠物服务领域存在服务资源分散、用户与服务商对接低效、服务流程不透明、服务记录难追溯等问题&#xff0c;制约了宠物服务行业的发展效率&a…

作者头像 李华
网站建设 2026/9/23 23:46:40

老年综合实训室建设指南:从规划到落地的全流程解析

随着社会老龄化进程的加速&#xff0c;面向老年服务人才的专业化、实践化培养变得日益重要。老年综合实训室作为集教学、实训、技能考核于一体的专业化场所&#xff0c;其科学建设成为相关院校和培训机构关注的重点。本文旨在提供一份从规划到落地的全流程解析&#xff0c;为有…

作者头像 李华
网站建设 2026/9/21 17:31:11

吐血推荐10个AI论文软件,专科生毕业论文必备!

吐血推荐10个AI论文软件&#xff0c;专科生毕业论文必备&#xff01; AI 工具如何助力专科生轻松应对论文挑战 在当今信息化时代&#xff0c;AI 技术已经渗透到各个领域&#xff0c;教育行业也不例外。对于专科生而言&#xff0c;撰写毕业论文是一项既重要又充满挑战的任务。面…

作者头像 李华
网站建设 2026/9/23 5:01:42

高通开源驱动ath12k已正式支持QCC2072

最新消息&#xff0c;高通于25年12月底更新开源驱动ath12k&#xff0c;已正式支持QCC2072 Wi-Fi7 芯片。 驱动对应链接&#xff1a; https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/tree/main 补丁说明链接&#xff1a; https://lore.kernel.org/ath12k/ O…

作者头像 李华